MYSQL අවුලක්

dnet

Active member
  • Dec 14, 2010
    178
    80
    28
    උදාහරණයක් විදිහට මැෂීන් 10 ක් විතර එක පාර දුවන POS System එකක Stock එක mysql databse එකේ Stock කියන Table එකේ item_code, qty,_cost කියන Field තියනවානම්.

    එකපාර මැෂීන් 09 කින් බිල් එන්ටර් කරනකොට stock table එකෙන් current stock එක අරගෙන ඒකෙන් බිල් එකේ තියන qty එක අඩු කරලා Stock Table එක update කරනවා.

    අනිත් මැෂීන් එකෙන් GRN එකක් enter කරනකොට අයිටම් වල Stock Table එකේ qty, cost යන අගයන් අරගෙන GRN එකේ අයිටම් වල qty, cost (Weighted Average Cost.) අනුව Stock Table එක update කරනවා.

    මේ ඔක්කොම එකපාර කළොත් Stock Table එකේ නිවැරදි අගයන් වලින් Update වෙයිද ?
     

    elajani

    Well-known member
  • Oct 18, 2020
    10,572
    6,344
    113
    උදාහරණයක් විදිහට මැෂීන් 10 ක් විතර එක පාර දුවන POS System එකක Stock එක mysql databse එකේ Stock කියන Table එකේ item_code, qty,_cost කියන Field තියනවානම්.

    එකපාර මැෂීන් 09 කින් බිල් එන්ටර් කරනකොට stock table එකෙන් current stock එක අරගෙන ඒකෙන් බිල් එකේ තියන qty එක අඩු කරලා Stock Table එක update කරනවා.

    අනිත් මැෂීන් එකෙන් GRN එකක් enter කරනකොට අයිටම් වල Stock Table එකේ qty, cost යන අගයන් අරගෙන GRN එකේ අයිටම් වල qty, cost (Weighted Average Cost.) අනුව Stock Table එක update කරනවා.

    මේ ඔක්කොම එකපාර කළොත් Stock Table එකේ නිවැරදි අගයන් වලින් Update වෙයිද ?
    Use Transaction locking
    Go and Google...
     

    හෙළයෙක්

    Well-known member
  • Apr 26, 2014
    49,128
    99,697
    113
    • Like
    Reactions: dnet

    u_make_me_sick_

    Well-known member
  • Oct 1, 2011
    11,522
    7,320
    113
    Machines 10 nma eka sere DB ekata connect wenna epa. Server application ekak run karala ee through connect wenna. Business logics server app eke liyanna.
     

    sajith.xp.pk

    Well-known member
  • Nov 12, 2008
    6,084
    4,187
    113
    Sri Lanka
    එහෙම කරන්න නෑ. ඔයා කරන්න ඕන GRN එක Update කරන එක ඒකට Data ඇඩ් වෙන query එක රන් කරන Process file එකේදි. එතකොට කවුරු කීයට කොච්චරක් දැම්මත් ප්‍රශ්නයක් නෑ හරි විදියට update වෙනව GRN එක.
     

    K_ZONE

    Well-known member
  • May 28, 2009
    5,164
    4,072
    113
    invoke db "Injected Memory"
    bump

    මැශින් 10 කින් නම් අව්ලක් ම නෑ. ඊට වඩ කනෙක්ස්ශන් සැහෙන ගානක් හැඩල් කරන්න පුලුවන්,
    ඔතන ප්‍රශ්නෙ වෙන්නේ එක තැනක,
    ඔයා ඔයාගේ transactions table එකට එවලා අප්ඩේට් කරන විදිය අනුව.

    ගොඩක් POS systems තියෙන්නේ stock value එක අරන්, ඇප්ලිකේශන් එකේ වේරියබල් එකකට අසයින් කරගෙන බිල ඉවර උනාම ඒ stock value එකෙන් qty එක අඩු කරලා අප්ඩේට් කරනවා. එත්කොට ඒ අතරේ වෙන මැශින් එකකින් ඒ ප්‍රඩක්ට් එකක් විකුනලා තිබ්බොත් වැලිව් එක වරදිනවා,

    ඒ නිසා උඩ කමෙන්ට් එකක තියෙනවා වගේ inline update කරන්න qty=qty-sale වගේ

    ඒත් එතනත් ප්‍රශ්නයක් එන්න පුලුවන් ස්ටොක් එකේ 1ක් තියෙන වෙලාවට මැශින් දෙක්ක එකම ප්‍රඩක්ට් එක විකුනලා තියෙන්න පුලුවන්. ඒ නිසා ප්‍රඩක්ට් එක ඇඩ් කරගද්දිම stock එකෙන් අදාල item එක reserve කරගන්න ඕන. නැත්නම් මරාගන්න වෙනවා. බිසී තැන් වල ඕක ලේසියෙන්ම වෙනවා.

    ඒත් එක්කම එකම ටේබ්ල් එක මැශින් කිහිපයකින් අප්ඩේට් වෙන වෙලාවට locks ගැන හොදට ප්ලෑන් කරගන්න ඕන. Select. Curser, join වගේ ඒවා ලොක් නොවෙන්න රන් කරන්න ඕන.
    ------ Post added on Jan 22, 2023 at 9:27 PM
     

    sajith.xp.pk

    Well-known member
  • Nov 12, 2008
    6,084
    4,187
    113
    Sri Lanka
    ඒත් එතනත් ප්‍රශ්නයක් එන්න පුලුවන් ස්ටොක් එකේ 1ක් තියෙන වෙලාවට මැශින් දෙක්ක එකම ප්‍රඩක්ට් එක විකුනලා තියෙන්න පුලුවන්. ඒ නිසා ප්‍රඩක්ට් එක ඇඩ් කරගද්දිම stock එකෙන් අදාල item එක reserve කරගන්න ඕන. නැත්නම් මරාගන්න වෙනවා. බිසී තැන් වල ඕක ලේසියෙන්ම වෙනවා.

    මෙහෙමයි... මට හිතෙන්නෙ ඕක අපි technically possibility එකක් හැටිය හිතුවට Practical එහෙම වෙන්නෙ නෑ මම හිතන්නෙ.. මොකද Stock එකේ 1යි නම් තියෙන්නෙ, බඩුව අරන් එන්නම එපායැ customer කෙනෙක්. ඉතින් ඒ 1ක් විතරක් තියෙන බඩුව, දෙන්නෙක්ගෙ අතට යන්නෙ නැති හින්ද bill issue කරද්දි ප්‍රශ්නයක් වෙන්නෙ නෑ..
     
    • Like
    Reactions: Jack London

    chami2015

    Well-known member
  • Jul 14, 2015
    7,054
    8,327
    113
    මගේ Strength එක MSSQL, ඒත් ඉතිං ඔක්කොම එකවගේ නේ යන්නෙ.
    පළවෙනි දේ මේව අප්ඩේට් කරද්දි හරිම Queries use කරන්න. ඒ කිව්වෙ ඩේටබේස් එකටම කුවරි එකක් යවන්න
    Quantity=Quantity-1
    අන්න ඒ වගේ. එතකොට මැෂින් 100කින් යැව්වත් + හෝ - වීමක් වෙන්නෙ කවදාවත් ස්ටොක් එක අවුල් යන්නෙ. ඒ අතරෙ Stock Movements ටේබල්, තව Transaction related tables අනිවාර්යෙන්ම අප්ඩේට් වෙනව නේ. අන්න ඒව ඔක්කොම Transaction block එකක් ඇතුලෙ ලියන්න. එහෙම නැත්නම් මොනමහරි හේතුවක් උඩ එරර් එකක් ගිහිල්ල ට්‍රාන්සැක්ෂන් එක නොවුනොත් Quantity විතරක් අප්ඩේට් වෙලා අනිත් ඒව නොවී තියෙන්න පුලුවන්. හොඳට Transactions හැන්ඩ්ල් කරන හැටි බලාගන්න. ඒ ටික තමයි ඉතිං කියන්න තියෙන්න
     

    siri_ayya

    Well-known member
  • Feb 1, 2022
    16,966
    1
    29,885
    113
    මෙසේජ් කිව් එකක් ඇප් එකයි ඩේටාබෙස් එකයි මැදට දාපන් . කිව් එක ප්‍රොසෙස් වෙලා අප්ඩේට් වෙයි.
    +1