انتقل إلى المحتوى

قاعدة البيانات — الزرع والبيانات المرجعية

ما هي

ما في قاعدة البيانات قبل أن يلمسها أي مستخدم: صفوف النظام التي يعتمد عليها وقت التشغيل، وقوائم البحث المزروعة، ومجموعة البيانات التجريبية الاختيارية. تمييز هذه ضروري — بعض الصفوف غير قابلة للتغيير، وبعضها مشترك عبر المستأجرين، وبعضها لا يوجد إلا في التطوير.

ثلاثة أنواع من الصفوف

النوع العلامة المعنى
صف نظام 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).

ذو صلة