قاعدة البيانات — نظرة عامة على المخطط
ما هي
فهرس قاعدة البيانات: 70 جدولًا، 272 فهرسًا، مُولّدة بواسطة EF Core 8 من نموذج النطاق ومسجّلة في EF ModelSnapshot (ManpowerIQDbContextModelSnapshot.cs) — مصدر الحقيقة البنيوي (لا حاجة إلى قاعدة بيانات حية). PostgreSQL عبر Npgsql، snake_case في كل مكان. هذه الصفحة هي فهرس الجداول + خريطة المفاتيح الأجنبية؛ أما السلوك وراء اصطلاحات طبقة البيانات فيعيش في صفحات المرحلة-5، مربوطًا تشعّبيًا لا مُكرّرًا.
اصطلاحات طبقة البيانات (مرجع — انظر الصفحات المرتبطة)
يتبع كل جدول مجموعة صغيرة من الاصطلاحات المُؤسَّسة في مكان آخر من هذا الدليل:
- أسماء snake_case + أعمدة ثنائية اللغة —
Name_1_English / Name_2_Arabic (وDescription_*) للتسميات الظاهرة للمستخدم. انظر التدويل.
- قاعدة
AuditableEntity — Id، CreatedAt/By، UpdatedAt/By، IsDeleted + DeletedAt/By (الحذف الناعم)، RowVersion (تزامن تفاؤلي، bytea)، IsActive. انظر التدقيق والحذف الناعم.
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_plans — DemandPlanStatus.Locked قيمة تعداد مُعرّفة-لكن-غير-قابلة-للوصول (F1)؛ لا مسار يضبط خطة على Locked.
published_rosters — نقطة حالة Approved ميتة؛ ينتقل النشر مباشرة إلى Published.
audit_events — تُكتب انتقائيًا (الخدمات تستدعي المُسجِّل)؛ ليست ظلًّا تلقائيًا لكل كتابة.
ذو صلة