عندما يصبح مخطط قاعدة البيانات هو «دستور» المؤسسة
في المشاريع البسيطة، تكون قاعدة البيانات مجرد جداول لحفظ النصوص واسترجاعها (CRUD). أما في الأنظمة المؤسسية الكبرى، فإن مخطط قاعدة البيانات (Database Schema) هو التمثيل الرياضي والقانوني لقواعد العمل؛ فإذا كان النموذج هزلياً أو ناقصاً، لن تنقذه أجمل واجهة مستخدم في العالم.
خلال تصميمي لأنظمة السرايا الثلاثة:
- نظام السرايا الطبي: بلغ حجم مخطط
schema.prismaأكثر من 5,959 سطراً. - نظام السرايا لإدارة المؤسسات: بلغ حجم المخطط 2,944 سطراً.
- نظام السرايا للإنتاج الحيواني: صُمم ليطابق معايير الإنتاج الزراعي والبيطري ومعيار IAS 41.
إليك أهم الدروس المعمارية المستخلصة من نمذجة هذه النطاقات الثلاثة:
1. اجعل الحالات غير القانونية مستحيلة التمثيل برمجياً
في نظام السرايا للإنتاج الحيواني، إحدى أخطر المشكلات في مزارع الألبان هي وصول حليب بقرة تتلقى علاجاً بالمضادات الحيوية إلى خزان الحليب العام.
لو اعتمدنا على «تنبيه نصي» يظهر للعامل، فقد يتجاهله العامل تحت ضغط العمل. بدلاً من ذلك، صممنا النموذج العلائقي بحيث يرتبط سجل العلاج البيطري (VeterinaryTreatment) بحقل فترة السحب (withdrawalEndDate) على مستوى الحيوان، وعند محاولة إدخال سجل حلب (MilkingRecord) مخصص للخزان التجاري، يرفض محرك النطاق العملية تلقائياً على مستوى المعاملة (Transaction Level) ويحول الحليب إلى سجل الإعدام/العزل الصحي.
2. المحاسبة المزدوجة كحدث تلقائي (Event-Driven Double-Entry Accounting)
المستخدم الميداني (الطبيب، أمين المخزن، أو مهندس التغذية في المزرعة) لا يعرف — ولا ينبغي أن يعرف — تفاصيل «المدين والدائن».
لذلك صممنا محرك ربط الحسابات النظامية (SystemAccountMapping) ومراكز التكلفة (CostCenter):
- عندما يصرف مهندس التغذية 500 كجم من العلف المركز للحظيرة رقم (4)، يقوم النظام في نفس المعاملة الذرية بخصم الكمية من المستودع، وحساب تكلفة العليقة للرأس الواحد، وتوليد قيد يومية مزدوج يثبت مصروف التغذية على مركز تكلفة الحظيرة رقم (4) وفق معيار IAS 41.
- وعندما تُجرى عملية جراحية في نظام السرايا الطبي، تتولد القيود المالية وحصص الأطباء (
CommissionRules) ومطالبات شركة التأمين (Claim) آلياً دون تدخل يدوي.
3. التتبع التاريخي وعدم المسح الفيزيائي (Soft Delete & Temporal History)
في الأنظمة الطبية والمالية، حذف سجل فاتورة أو تشخيص طبي بـ DELETE FROM هو كارثة رقابية. لذلك تعتمد نماذجنا على الحذف المنطقي المدار (SoftDeleteService) مع الاحتفاظ بالسجل التاريخي الكامل لكل تغيير.