Laravel සංවර්ධකයෙක් නව ව්යාපෘතියකට බහු‑ආයතන (multi‑tenant) ආකෘතියක් එක් කිරීමට තීරණය කළා. ඒ සඳහා අඩු පිරිවැයෙන්, එකම දත්තගබඩාව භාවිතා කරමින්, එක් පේළියක් එක් ආයතනයකට අයත් බව තහවුරු කරගන්නා මූලික ස්ථරයක් (foundation layer) නිර්මාණය කරලා.
මෙම පදනම තුළ තිදෙනෙකුගේ මූලික කොටස් පවතිනවා – TenantContext එකක්, BelongsToTenant ට්රෙයිට් එක, සහ සංයුක්ත (composite) අනන්යතා සීමා (unique constraints). TenantContext එක සෑම වරක්ම වර්තමාන ආයතනයේ ID එක ලබා දී, එය ග්ලෝබල් ස්කෝප් (global scope) හරහා සියලුම කුමන කුමන query එකකටද අයත්ද පරීක්ෂා කරයි. මේ නිසා දත්ත විශාල වශයෙන් එකිනෙකට මාරු නොවෙයි.
BelongsToTenant ට්රෙයිට් එක දෙකේ වැඩ කරයි: කියවීමේදී ග්ලෝබල් ස්කෝප් එකක් එක් කර tenant_id අනුව පේළි පිරික්සයි, ලිවීමේදී නිර්මාණය වන මොහොතේ tenant_id පිරවීමේ වගකීම ගනී. මේ මගින් මොනවාද කියලා අමතක වීමේ අවදානම අඩු වෙනවා. තවත් වැදගත් කරුණක් නම්, අදාළ වගුවේ tenant_id පීළිවෙළක් තිබේදැයි, ඒ ට්රෙයිට් එක භාවිතා කර තිබේදැයි පරීක්ෂා කරන CI පරීක්ෂණයක් (test) එකක් තනලා ඇත. මේ පරීක්ෂණය CI පයිප්ලයින් එකේ අසාර්ථක වුවහොත්, අදාළ මොඩලය මත අමතක වීමක් සිදු වූ බව පෙන්වයි.
ශ්රී ලංකාවට ඇති වැදගත්කම
ශ්රී ලංකාවේ තරුණ සංවර්ධකයන්, startup ගණිකා සහ මධ්යම-විශාල ආයතන සඳහා මෙම තාක්ෂණය පහත පරිදි ප්රයෝජනවත් වේ:
- වියදම් අඩු කිරීම: බහු‑ආයතන සඳහා එක් දත්තගබඩාව භාවිතා කිරීමෙන්, සර්වර්, අඩු‑සංරක්ෂණය සහ මයිග්රේෂන් කාර්යයන් අඩු වේ.
- ඉක්මන් සංවර්ධනය: Laravel හි පූර්ව-නිර්මාණිත ට්රෙයිට් එකක් භාවිතා කර, ආයතන-මට්ටමේ දත්ත පාලනයක් කෙටි කාලයක් තුළ ක්රියාත්මක කළ හැකිය.
- ආරක්ෂාව වැඩිදියුණු කිරීම: CI පරීක්ෂණයක් මගින් tenant_id අතුරුදන් වීමේ අවදානම අඩු කර, දත්ත ලික්කය (data leakage) අවස්ථා වැලැක්වීමට උපකාරී වේ.
- ස්කේලබල් ආකෘතිය: පසුගිය කාලයේ කුඩා ව්යාපාරයක් වශයෙන් ආරම්භ කර, පසුකාලීනව තවත් ආයතන එකතු කර ගැනීමට හැකියාව ඇත.
එම නිසා, ලංකාවේ තාක්ෂණික පසුබැසීමේ ගැටලු හඳුනාගෙන, ගැලපෙන, පරිසර-හිතකාමී, හා පිරිවැය‑හිතකාමී විසඳුම් ගොඩනැගීමට මෙම පදනම ඉතා වැදගත් වේ.
අවසන් වශයෙන්, Laravel හි shared‑database multi‑tenancy පදනම, කේතයේ සරලත්වය, CI‑මගින් ආරක්ෂාව, සහ ඉක්මන් ව්යාපාරික ප්රතිචාරය වැනි ලාභයන් සමඟ, ශ්රී ලංකාවේ තාක්ෂණික සංවර්ධනයට නව මාවතක් ගෙන එයි.