قاعدة البيانات — الزرع والبيانات المرجعية
ما هي
ما في قاعدة البيانات قبل أن يلمسها أي مستخدم: صفوف النظام التي يعتمد عليها وقت التشغيل، وقوائم البحث المزروعة، ومجموعة البيانات التجريبية الاختيارية. تمييز هذه ضروري — بعض الصفوف غير قابلة للتغيير، وبعضها مشترك عبر المستأجرين، وبعضها لا يوجد إلا في التطوير.
ثلاثة أنواع من الصفوف
| النوع | العلامة | المعنى |
|---|---|---|
| صف نظام | IsSystem = true |
مزروع وغير قابل للتغيير بنيويًا — يُرفض تعديل/حذف المسؤول بـ 409 <ENTITY>_PROTECTED. يفترض وقت التشغيل وجودها. |
| صف عام | بلا business_unit_id |
بيانات مرجعية مشتركة — متطابقة لكل وحدة عمل (مثل فهرس الصلاحيات). |
| صف مستأجر | business_unit_id مضبوط |
مملوك لوحدة عمل واحدة؛ لا يُرى أبدًا لأخرى (انظر تعدّد المستأجرين). |
IsSystem (غير قابل للتغيير) والعام (مشترك) فكرتان مختلفتان — يمكن لقائمة بحث عامة أن تحوي صفوفًا غير-نظامية تضيفها وحدة عمل؛ ويمكن لجدول مستأجر أن يحوي صفوف نظام. لا تخلط بينهما (انظر نمط التعايش).
مزروع عند وقت الترحيل
تزرع الترحيلات خط الأساس الذي يحتاجه النظام ليعمل:
- RBAC — فهرس بـ97 صلاحية (عام) و9 أدوار نظام لكل وحدة عمل (كان خط أساس MIQ-003 هو 40/7؛ أُضيف HR_DIRECTOR + COO + نحو 57 صلاحية لاحقًا). انظر مصفوفة RBAC.
- فهرس أنواع قواعد التخصيص — 12 نوع قاعدة كصفوف نظام (
allocation_rule_type_catalog، MIQ-021). - حالات الحضور — 8 حالات مزروعة (Sprint 10a).
- قوائم بحث الموظف/المهارة —
genders،nationalities،employee_statuses،employment_types،grades،skill_categories،skill_levels(MIQ-006). - قوائم بحث المنشأة والتقويم —
node_types،holiday_types،shift_types،approval_request_types، إضافة إلىdemand_reasonsالعام (MIQ-016). - المستخدمون التجريبيون — حسابات خط الأساس
admin.demo/ إلخ المستخدمة للدخول المحلي (login-dev).
عبارات INSERT للزرع هذه هي سبب وجوب أن تكون إعادة الضبط إسقاط + إعادة إنشاء، لا اقتطاع (PB-025 — انظر الترحيلات).
مزروع مقابل قوائم بحث مُدارة بـ CRUD
- 9 قوائم بحث لها CRUD إداري كامل:
shift_templates،holidays،demand_reasons،node_types،terminals،grades،skills،attendance_statuses،pools— تبقى صفوف النظام فيها غير قابلة للتغيير؛ يدير المسؤولون الذيل غير-النظامي (الورقة 21، قالب Lookup CRUD). - البقية للزرع-فقط / للقراءة-فقط —
nationalities،genders،employment_types،employee_statuses،skill_categories،skill_levels،holiday_types،shift_types،certification_types،approval_request_types، وdepartments/nodes(بلا واجهة كتابة؛ تُملأ بالزرع/الترحيل).
مجموعة البيانات التجريبية
تُحمَّل مجموعة بيانات تجريبية أغنى (موظفون، مهارات، طلب، جداول، حضور) بواسطة DemoDataSeeder في مشروع اختبار E2E — تُستخدم لملء بيئة محلية واقعية للقطات الشاشة/UAT (بيانات المرحلة-3 التجريبية). إنها أداة تطوير، لا زرع إنتاج، وهي عديمة-الأثر (تكرار التشغيل يضيف صافي صفوف صفر)؛ التنظيف الانتقائي يستخدم استعلامات بادئة DDS_*، وإعادة الضبط الكاملة هي إسقاط+إعادة إنشاء (دليل التشغيل §11).
مزالق / قيود
- صفوف النظام غير قابلة للتغيير — لا تكتب شيفرة تعدّلها أو تحذفها؛ يُعيد الحارس 409.
employees/employee_skills/employee_certificationsللاستيراد/الزرع-فقط — بلا واجهة إنشاء/تعديل (الورقة 03).- إعادة الضبط = إسقاط + إعادة إنشاء — الاقتطاع يترك
__EFMigrationsHistoryمتقدّمًا على الصفوف فلا يُعاد تشغيل الزرع (PB-025). - البيانات التجريبية ≠ زرع الترحيل —
DemoDataSeederمنفصل عن خط الأساس الذي تثبّته الترحيلات؛ قاعدة بيانات جديدة لها زرع الترحيل لكن ليس مجموعة البيانات التجريبية حتى يُشغَّل الزارع.
حالة البناء
متاح — تُشحن زروع وقت-الترحيل مع المخطط؛ ومجموعة البيانات التجريبية أداة تطوير (مشروع E2E).
ذو صلة
- الترحيلات · نظرة عامة على المخطط
- مصفوفة RBAC · نمط التعايش · تعدّد المستأجرين
- المصدر: كتل الزرع في
Migrations/؛DemoDataSeeder(اختبارات E2E)؛ دليل التشغيل §4/§11؛ ورقة الحقائق 21.