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

قاعدة البيانات — نظرة عامة على المخطط

ما هي

فهرس قاعدة البيانات: 70 جدولًا، 272 فهرسًا، مُولّدة بواسطة EF Core 8 من نموذج النطاق ومسجّلة في EF ModelSnapshot (ManpowerIQDbContextModelSnapshot.cs) — مصدر الحقيقة البنيوي (لا حاجة إلى قاعدة بيانات حية). PostgreSQL عبر Npgsql، snake_case في كل مكان. هذه الصفحة هي فهرس الجداول + خريطة المفاتيح الأجنبية؛ أما السلوك وراء اصطلاحات طبقة البيانات فيعيش في صفحات المرحلة-5، مربوطًا تشعّبيًا لا مُكرّرًا.

اصطلاحات طبقة البيانات (مرجع — انظر الصفحات المرتبطة)

يتبع كل جدول مجموعة صغيرة من الاصطلاحات المُؤسَّسة في مكان آخر من هذا الدليل:

  • أسماء snake_case + أعمدة ثنائية اللغةName_1_English / Name_2_ArabicDescription_*) للتسميات الظاهرة للمستخدم. انظر التدويل.
  • قاعدة AuditableEntityId، CreatedAt/By، UpdatedAt/By، IsDeleted + DeletedAt/By (الحذف الناعم)، RowVersion (تزامن تفاؤلي، byteaIsActive. انظر التدقيق والحذف الناعم.
  • TenantEntity : AuditableEntity — يضيف BusinessUnitId؛ نحو 40 من الجداول الـ70 محدودة النطاق بالمستأجر. يُفرَض العزل بمرشّحات الاستعلام + الختم + RLS. انظر تعدّد المستأجرين.
  • فهارس جزئية-فريدة — تفرّد code مُرشَّح بـ WHERE is_deleted = false فتصبح الرموز قابلة لإعادة الاستخدام بعد الحذف الناعم. انظر قالب Lookup CRUD.
  • AuditEvent هو الاستثناء — معرّف bigint للإلحاق-فقط، وليس AuditableEntity (لا حذف ناعم/RowVersion).

خريطة المفاتيح الأجنبية (السلسلة الأساسية)

النواة التشغيلية، من البيانات المرجعية وصولًا إلى الجداول المنشورة والتسوية (المفاتيح الأجنبية من ModelSnapshot):

flowchart TB
    BU[business_units] --> TER[terminals] --> DEP[departments]
    DEP --> NODE[nodes]
    DEP --> POOL[pools] --> PLR[pool_lending_rules]
    EMP[employees] --> DEP
    EMP --> POOL
    EMP --> TER
    DP[demand_plans] --> DL[demand_lines]
    DP --> TER
    DL --> NODE
    DL --> SKILL[skills]
    AR[allocation_runs] --> DP
    AR --> ARS[allocation_rule_sets] --> ARULE[allocation_rules]
    AR --> ARC[allocation_run_candidates] --> DL
    ARC --> EMP
    PR[published_rosters] --> AR
    PRL[published_roster_lines] --> PR
    PRL --> ARC
    PRL --> EMP
    ATT[attendance_records] --> EMP
    ATT --> ASTAT[attendance_statuses]
    REC[reconciliation_exception_validations] --> EMP
    LR[leave_requests] --> EMP --> LAS[leave_approval_steps]

(مجموعة المفاتيح الأجنبية الكاملة للجداول الـ70 موجودة في ModelSnapshot؛ هذا يُظهر التدفّقات الرئيسية.)

فهرس الجداول (70 جدولًا، حسب النطاق المعرفي)

المفتاح: النطاق = BU (محدود بالمستأجر) / global (مرجع مشترك) / hybrid (كلاهما).

الأساس — الاستئجار وRBAC والتدقيق (7)

الجدول الغرض النطاق
business_units جذر المستأجر root (RLS-exempt)
users حسابات الدخول BU
roles حِزم الصلاحيات BU
permissions فهرس الصلاحيات العام global
role_permissions منح دور→صلاحية BU
user_roles منح مستخدم→دور (محدود بالقسم، مُؤرَّخ الفعالية) BU
audit_events سجل تدقيق للإلحاق-فقط (bigint، ليس Auditable) BU-stamped

الهيكل التنظيمي (6)

الجدول الغرض النطاق
terminals المحطات BU
departments الأقسام (→ المحطة) BU (زرع/قراءة)
nodes عقد العمل (→ القسم، node_type) BU (زرع/قراءة)
node_types قائمة بحث نوع-العقدة global (CRUD)
pools مجموعات العمّال (افتراضيًا 1/قسم) BU
pool_lending_rules إعارة موجّهة عبر المجموعات BU

السجل الرئيسي للموظفين (10)

الجدول الغرض النطاق
employees السجل الأساسي للموارد البشرية (11 مفتاحًا أجنبيًا) BU
employee_eligible_terminals / employee_eligible_nodes أين يجوز تعيين العامل (نوافذ فعالية) BU
employee_groups / employee_group_memberships مجموعات مُسمّاة + عضوية BU
grades قائمة بحث الدرجة (CRUD، MIQ-133) global
genders / nationalities / employee_statuses / employment_types قوائم بحث الموظفين global (زرع/قراءة)

المهارات والشهادات (8)

الجدول الغرض النطاق
skills فهرس المهارات BU
skill_categories / skill_levels تصنيف المهارات global (زرع/قراءة)
employee_skills موظف↔مهارة (مستوى) BU
certification_types / certification_categories فهرس الشهادات hybrid / global
employee_certifications شهادات الموظف BU
skill_certification_requirements مهارة→شهادة مطلوبة BU

التقويمات والورديات (11)

الجدول الغرض النطاق
business_unit_calendars / business_unit_weekend_days تقويم وحدة العمل + عطل نهاية الأسبوع BU
holidays / holiday_types العطلات + قائمة بحث النوع BU / global
terminal_weekend_days / working_hour_modifier_periods عطل نهاية الأسبوع لكل محطة + معدّلات الساعات BU
shift_templates / shift_types قوالب الورديات (CRUD) + قائمة بحث النوع BU / global
shift_patterns / shift_pattern_types / shift_pattern_days الأنماط + النوع + صفوف الأيام BU / global / BU

الطلب (5)

الجدول الغرض النطاق
demand_plans مصفوفة الطلب (آلة الحالة) BU
demand_lines خلايا الخطة (→ العقدة، المهارة، السبب) BU
demand_templates / demand_template_lines أشكال قابلة لإعادة الاستخدام BU
demand_reasons قائمة بحث السبب (CRUD) hybrid

محرّك التخصيص (7)

الجدول الغرض النطاق
allocation_rule_sets مجموعات القواعد BU
allocation_rules / allocation_rule_scopes القواعد + نطاقاتها BU
allocation_rule_type_catalog فهرس بـ12 نوعًا (صفوف نظام) hybrid
allocation_rule_execution_logs سجل تنفيذ لكل قاعدة BU
allocation_runs جولات التخصيص (آلة الحالة، لقطة) BU
allocation_run_candidates تقييمات المرشَّحين لكل سطر طلب BU

الجداول والنشر والاعتمادات (4)

الجدول الغرض النطاق
published_rosters لقطة منشورة غير قابلة للتغيير BU
published_roster_lines أسطر اللقطة BU
roster_approval_steps خطوات طابور الاعتماد BU
employee_shift_assignments تعيينات الورديات (→ النمط) BU

الإجازات (2)

الجدول الغرض النطاق
leave_requests طلبات الإجازة (الحالة، بلا تصنيف LeaveType) BU
leave_approval_steps سلسلة اعتماد من خطوتين BU

الحضور والتسوية (5)

الجدول الغرض النطاق
attendance_records الحضور (مصدره Excel) BU
attendance_statuses قائمة بحث الحالة (CRUD) global
attendance_audit_logs سجل تغيير الحضور BU
attendance_pending_reviews طابور مراجعة-التعديل BU
reconciliation_exception_validations عمليات التحقق من التسوية BU

الاستيراد (2)

الجدول الغرض النطاق
import_jobs مهام استيراد Excel (Hangfire) BU
import_job_errors أخطاء لكل صف (RawRowJson jsonb) BU

مصفوفة الاعتماد والإعدادات (3)

الجدول الغرض النطاق
approval_matrix_rules قواعد مصفوفة-الاعتماد (المُحلِّل غير موصول بالتدفّق الحي) BU
approval_request_types قائمة بحث نوع-الطلب global
application_settings إعدادات وحدة العمل BU

للقراءة-فقط / للزرع-فقط مقابل CRUD

  • CRUD إداري كامل: قوائم البحث الـ9 ذات وحدات التحكّم الإدارية — shift_templates، holidays، demand_reasons، node_types، terminals، grades، skills، attendance_statuses، pools (الورقة 21).
  • للزرع-فقط / للقراءة-فقط: business_units، departments، nodes، وقوائم بحث الموظف/المهارة (genders، nationalities، employee_statuses، employment_types، holiday_types، shift_types، skill_categories، skill_levels، approval_request_types، certification_types) — تُملأ بالزرع/الترحيل، بلا واجهة كتابة.
  • بيانات الاستيراد/الزرع-فقط: employees، employee_skills، employee_certifications — بلا نقطة إنشاء/تعديل؛ تُحمَّل عبر استيراد Excel (الورقة 03).

التصحيحات المحمولة (حيث تلامس الجداول)

  • demand_plansDemandPlanStatus.Locked قيمة تعداد مُعرّفة-لكن-غير-قابلة-للوصول (F1)؛ لا مسار يضبط خطة على Locked.
  • published_rosters — نقطة حالة Approved ميتة؛ ينتقل النشر مباشرة إلى Published.
  • audit_events — تُكتب انتقائيًا (الخدمات تستدعي المُسجِّل)؛ ليست ظلًّا تلقائيًا لكل كتابة.

ذو صلة