ශ්‍රී ලංකාවේ නවතම තාක්ෂණික පුවත් 2026-07-21, Tuesday
💻 ක්‍රමලේඛනය · 🕒 කියවීමට විනාඩි 2 · 👁 1

PostgreSQL CHECK පිරික්සුම වැරදීමෙන් සම්බන්ධතා ලේඛන අස්ථානගත වීම – විසඳුම මෙන්න

PostgreSQL CHECK පිරික්සුම වැරදීමෙන් සම්බන්ධතා ලේඛන අස්ථානගත වීම – විසඳුම මෙන්න

PostgreSQL හි CHECK පිරික්සුම යනු දත්ත වගුවේ අගයන් සීමා කරගන්නා සරල නීතියකි, නමුත් එය සලකා නොබැලීමේදී පද්ධතියේ ගැටළු තවත් ගැඹුරු කරයි. Elevare Digital හි ARIA නාමක CRM පද්ධතියේ අලුත්ම සිදුවීම මෙය උදාහරණයකි.

කොහොමද සිදුවුනේ?

ආරම්භකව, enrollment_tracker වගුවේ region නමින් තීරුවක් තිබුණා. එයට පහත පරිදි CHECK පිරික්සුමක් සකසා තිබුණා: region IN ('north','south','east','west','central'). පද්ධතිය පළමු පරිසරයට පමණක් අදාල වූ අතර, පසුකාලීනව කේතය වගුවේ භාවිතය විස්තාර කර, අලුත් ප්‍රදේශ නාම ‘southeast’ වැනි අගයන් ඇතුළත් කිරීමට උත්සාහ කළා.

ඒ අගයන් INSERT කිරීම trigger එකක් තුළ සිදු වූ නිසා, PostgreSQL පිරික්සුම උල්ලංඝනය වූ පසු මුළු පරිශීලක ලේඛනයම (contact) අත්හිටුවා දමා, වැරදි පණිවිඩයක් නොපෙන්වා පරිශීලකයාට කිසිදු තොරතුරක් ලැබුනේ නැත.

ඇයි මෙය වැදගත්?

CHECK පිරික්සුම වගුවේ නාමය මත පමණක් සීමා නොවේ; ඒ නීතිය පරික්ෂා නොකළහොත්, trigger මගින් සිදු වන INSERT එක පූර්ණ ව්‍යාපාරික ගනුදෙනුව අත්හිටුවා දැමීමට ඉඩ ඇත. එම නිසා, දත්ත ඇතුළත් කිරීමේ පළමු ආරක්ෂක මට්ටම ලෙස CHECK පිරික්සුම භාවිතා නොකළහොත්, අනපේක්ෂිත දෝෂයන් ව්‍යාපාරයේ වැඩි පිරිවැයට හේතුවක් වේ.

ශ්‍රී ලංකාවට ඇති වැදගත්කම

  • ඩිවෙලොපර්ලා – දත්ත ආකෘති සැලසුම් කරන විට CHECK පිරික්සුම සහ trigger අතර සම්බන්ධතාවය සළකා බැලීමට අවශ්‍යතා.
  • ව්‍යාපාරිකයන් – දත්ත අස්ථානගත වීම නිසා සිදු විය හැකි සේවා අත්හිටුම් හා පාරිභෝගික අහිමි වීම වැළැක්වීමට නීතිමය ආරක්ෂණයක් ලෙස පිරික්සුම භාවිතා කරන්න.
  • සිසුන් – SQL පරිසරයේ runtime දෝෂ හඳුනා ගැනීමේ වැදගත්කම ඉගෙන ගනිමින්, production පද්ධති වලට අදාළ හොඳම පුරුදු රැගෙන යා හැකිය.

අවසන් වශයෙන්, පිරික්සුමට අදාළ අගයන් කේතයේ පූර්ව පරීක්ෂාවක් (gate) එකක් ලෙස යොදා ගැනීම, වැරදි දත්ත ඇතුළත් කිරීමෙන් පසු පූර්ණ transaction එක අත්හිටුවා නොදැමීමට හොඳම විසඳුම වේ. මෙම අත්දැකීමෙන් පසු, Elevare Digital කණ්ඩායම trigger කේතය තුළ region ලැයිස්තුව පරීක්ෂා කර, අනුමත නොවන අගයන් log කිරීමේ නව ක්‍රමයක් හඳුන්වා දුන්නේය.

💡 ඔබේ ව්‍යාපාරයට මේ පාඩම් අත්පත් කරගන්න!
මූලාශ්‍රය මෙම ලිපිය AI මගින් රචිත මුල් සාරාංශයකි. සම්පූර්ණ වාර්තාව කියවන්න:
Dev.to ↗
#PostgreSQL #SQL #Trigger #Constraint #Programming