RAKAEZ
Database Design · ERD

مخطط قاعدة البيانات

Entity Relationship Diagram · 53 جدول · ~390 حقل · 108 علاقة

48
جدول
390+
حقل
95
علاقة
9
مجموعات وظيفية
📊 OVERVIEW · نظرة عامة

9 مجموعات وظيفية تكوّن قاعدة بيانات ركائز

قاعدة بيانات احترافية مصممة لـ ERP صغير - متوسط · بنية معيارية قابلة للتوسع · مفاتيح UUID للأمان · Soft Delete للسجلات · Audit Trail شامل.

🔐 المجموعة 1 · المصادقة والصلاحيات

Authentication & Authorization

5 جداول · المستخدمون والأدوار والصلاحيات والجلسات.

users14 fields
keyidUUID
codeVARCHAR(20) UNIQUE
first_nameVARCHAR(50)
last_nameVARCHAR(50)
verifiedphoneVARCHAR(20) UNIQUE
verifiedemailVARCHAR(255) UNIQUE
password_hashVARCHAR(255)
user_typeENUM(client/employee/admin)
linkdepartment_idUUID FK→departments
avatar_urlTEXT
last_login_atTIMESTAMP
is_activeBOOLEAN DEFAULT true
created_atTIMESTAMP
deleted_atTIMESTAMP NULL
roles7 fields
keyidUUID
nameVARCHAR(50) UNIQUE
name_arVARCHAR(100)
descriptionTEXT
levelINTEGER (1-9)
is_systemBOOLEAN DEFAULT false
created_atTIMESTAMP
permissions6 fields
keyidUUID
codeVARCHAR(50) UNIQUE
name_arVARCHAR(100)
moduleVARCHAR(30)
actionENUM(view/create/edit/delete/approve)
created_atTIMESTAMP
role_permissionsjunction · 4
keyrole_idUUID FK→roles
keypermission_idUUID FK→permissions
granted_atTIMESTAMP
linkgranted_byUUID FK→users
user_rolesjunction · 5
keyuser_idUUID FK→users
keyrole_idUUID FK→roles
assigned_atTIMESTAMP
expires_atTIMESTAMP NULL
linkassigned_byUUID FK→users
user_sessions9 fields
keyidUUID
linkuser_idUUID FK→users
tokenVARCHAR(255) UNIQUE
device_typeVARCHAR(50)
device_nameVARCHAR(100)
ip_addressINET
last_activityTIMESTAMP
expires_atTIMESTAMP
revokedBOOLEAN DEFAULT false
العلاقات في هذه المجموعة
  • • users → departments · Many-to-One (موظف ينتمي لقسم واحد)
  • • users ↔ roles · Many-to-Many عبر user_roles
  • • roles ↔ permissions · Many-to-Many عبر role_permissions
  • • users → user_sessions · One-to-Many (مستخدم له عدة جلسات)
🏢 المجموعة 2 · المنظمة والعملاء

Organization · Clients · Suppliers

departments8
keyidUUID
codeVARCHAR(20) UNIQUE
name_arVARCHAR(100)
name_enVARCHAR(100)
descriptionTEXT
linkmanager_idUUID FK→users
iconVARCHAR(50)
colorVARCHAR(7)
clients15
keyidUUID
linkuser_idUUID FK→users
codeVARCHAR(20) UNIQUE (CL-XXXXX)
full_nameVARCHAR(150)
national_idVARCHAR(20)
tierENUM(regular/vip/premium)
addressTEXT
cityVARCHAR(50)
company_nameVARCHAR(150) NULL
tax_numberVARCHAR(30)
credit_limitDECIMAL(12,2)
nps_scoreDECIMAL(3,1)
acquisition_sourceVARCHAR(50)
notesTEXT
created_atTIMESTAMP
suppliers14
keyidUUID
codeVARCHAR(20) UNIQUE (SUP-XXXX)
nameVARCHAR(150)
contact_personVARCHAR(100)
phoneVARCHAR(20)
emailVARCHAR(255)
addressTEXT
tax_numberVARCHAR(30)
categoriesVARCHAR(255)[]
ratingDECIMAL(2,1) DEFAULT 0.0
statusENUM(active/testing/blocked)
payment_termsVARCHAR(50)
avg_delivery_daysINTEGER
created_atTIMESTAMP
client_contacts7
keyidUUID
linkclient_idUUID FK→clients
nameVARCHAR(100)
relationVARCHAR(50)
phoneVARCHAR(20)
emailVARCHAR(255)
is_primaryBOOLEAN
📁 المجموعة 3 · المشاريع

Projects & Phases

projects22
keyidUUID
codeVARCHAR(20) UNIQUE (PRJ-YYYY-NNN)
nameVARCHAR(200)
linkclient_idUUID FK→clients
project_typeENUM(apartment/villa/office/etc)
finish_levelENUM(regular/super_lux/premium/custom)
area_sqmDECIMAL(8,2)
unit_numberVARCHAR(20)
addressTEXT
cityVARCHAR(50)
latitudeDECIMAL(10,8)
longitudeDECIMAL(11,8)
contract_valueDECIMAL(14,2)
budgetDECIMAL(14,2)
start_dateDATE
expected_deliveryDATE
actual_deliveryDATE NULL
progress_percentDECIMAL(5,2)
statusENUM(planning/active/paused/completed/cancelled)
descriptionTEXT
linkcreated_byUUID FK→users
created_atTIMESTAMP
project_membersjunction · 6
keyproject_idUUID FK→projects
keyuser_idUUID FK→users
role_in_projectENUM(site_eng/designer/tech/supervisor)
assigned_atTIMESTAMP
removed_atTIMESTAMP NULL
is_leadBOOLEAN
project_phases11
keyidUUID
linkproject_idUUID FK→projects
order_indexINTEGER
nameVARCHAR(100)
descriptionTEXT
planned_startDATE
planned_endDATE
actual_startDATE NULL
actual_endDATE NULL
progress_percentDECIMAL(5,2)
statusENUM(pending/active/completed/blocked)
project_tasks13
keyidUUID
linkproject_idUUID FK→projects
linkphase_idUUID FK→project_phases NULL
linkassigned_toUUID FK→users
titleVARCHAR(200)
descriptionTEXT
priorityENUM(low/normal/high/urgent)
statusENUM(todo/in_progress/done/cancelled)
due_dateTIMESTAMP
completed_atTIMESTAMP NULL
linkcreated_byUUID FK→users
created_atTIMESTAMP
updated_atTIMESTAMP
project_files12
keyidUUID
linkproject_idUUID FK→projects
categoryENUM(photo/design/drawing/document/video)
nameVARCHAR(255)
file_urlTEXT
thumbnail_urlTEXT
mime_typeVARCHAR(50)
size_bytesBIGINT
tagsVARCHAR(50)[]
gps_latDECIMAL(10,8) NULL
linkuploaded_byUUID FK→users
uploaded_atTIMESTAMP
✅ المجموعة 4 · الاعتمادات

Approvals System

approval_categories7
keyidUUID
codeVARCHAR(20)
name_arVARCHAR(50)
iconVARCHAR(50)
colorVARCHAR(7)
parent_idUUID FK→approval_categories NULL
order_indexINTEGER
approvals18
keyidUUID
codeVARCHAR(20) UNIQUE (APR-YYYY-NNN)
linkproject_idUUID FK→projects
linkcategory_idUUID FK→approval_categories
titleVARCHAR(200)
descriptionTEXT
specificationsJSONB
quantityDECIMAL(10,2)
unitVARCHAR(20)
colorVARCHAR(50)
estimated_priceDECIMAL(12,2)
statusENUM(draft/review/with_client/approved/rejected/conditional)
linkcreated_byUUID FK→users
linkdecided_byUUID FK→users NULL
decided_atTIMESTAMP NULL
decision_notesTEXT
created_atTIMESTAMP
deleted_atTIMESTAMP NULL
approval_items8 · sub-items
keyidUUID
linkapproval_idUUID FK→approvals
nameVARCHAR(200)
quantityDECIMAL(10,2)
unitVARCHAR(20)
price_per_unitDECIMAL(10,2)
colorVARCHAR(50)
notesTEXT
approval_history7 · audit
keyidUUID
linkapproval_idUUID FK→approvals
actionVARCHAR(50)
from_statusVARCHAR(30)
to_statusVARCHAR(30)
linkuser_idUUID FK→users
created_atTIMESTAMP
approval_attachmentsjunction · 4
keyapproval_idUUID FK→approvals
keyfile_idUUID FK→project_files
order_indexINTEGER
added_atTIMESTAMP
💬 المجموعة 5 · التواصل والإشعارات

Communication · 5 جداول

inquiries12
keyidUUID
linkproject_idUUID FK→projects
linkclient_idUUID FK→clients
linkdepartment_idUUID FK→departments
subjectVARCHAR(255)
priorityENUM(low/normal/high/urgent)
statusENUM(open/in_progress/escalated/resolved/closed)
escalation_levelINTEGER DEFAULT 0
last_activity_atTIMESTAMP
resolved_atTIMESTAMP NULL
created_atTIMESTAMP
archivedBOOLEAN
inquiry_messages10
keyidUUID
linkinquiry_idUUID FK→inquiries
linksender_idUUID FK→users
message_typeENUM(text/image/file/voice/video)
contentTEXT
linkreply_to_idUUID FK→inquiry_messages NULL
read_atTIMESTAMP NULL
edited_atTIMESTAMP NULL
created_atTIMESTAMP
deletedBOOLEAN
notifications14
keyidUUID
linkuser_idUUID FK→users
typeVARCHAR(50)
priorityINTEGER (1-5)
titleVARCHAR(200)
bodyTEXT
action_urlTEXT
channelsVARCHAR(20)[] (push,sms,email,whatsapp)
delivered_atTIMESTAMP NULL
read_atTIMESTAMP NULL
acted_atTIMESTAMP NULL
action_takenVARCHAR(50) NULL
created_atTIMESTAMP
expires_atTIMESTAMP NULL
notification_templates9
keyidUUID
codeVARCHAR(50) UNIQUE
name_arVARCHAR(150)
title_templateVARCHAR(255)
body_templateTEXT
variablesJSONB
default_channelsVARCHAR(20)[]
default_priorityINTEGER
is_activeBOOLEAN
attachmentsjunction · 5
keyidUUID
parent_typeVARCHAR(30) (msg/approval/note)
parent_idUUID
linkfile_idUUID FK→project_files
created_atTIMESTAMP
📦 المجموعة 6 · المخازن

Warehouse & Inventory · 6 جداول

items15
keyidUUID
skuVARCHAR(30) UNIQUE
name_arVARCHAR(200)
name_enVARCHAR(200)
categoryVARCHAR(50)
subcategoryVARCHAR(50)
unitVARCHAR(20)
brandVARCHAR(50)
originVARCHAR(50)
specificationsJSONB
image_urlTEXT
avg_priceDECIMAL(10,2)
min_stockDECIMAL(10,2)
barcodeVARCHAR(50)
is_activeBOOLEAN
inventory8
keyidUUID
linkitem_idUUID FK→items
linkwarehouse_idUUID FK→warehouses
quantityDECIMAL(10,2)
locationVARCHAR(50)
last_count_dateTIMESTAMP
avg_costDECIMAL(10,2)
updated_atTIMESTAMP
warehouses7
keyidUUID
codeVARCHAR(20) UNIQUE
nameVARCHAR(100)
addressTEXT
typeENUM(main/branch/site)
linkmanager_idUUID FK→users
capacity_sqmDECIMAL(10,2)
warehouse_requests11
keyidUUID
codeVARCHAR(20) UNIQUE
linkproject_idUUID FK→projects
linkrequested_byUUID FK→users
priorityENUM(normal/urgent)
statusENUM(new/processing/partial/complete/cancelled)
notesTEXT
linkprocessed_byUUID FK→users NULL
processed_atTIMESTAMP NULL
created_atTIMESTAMP
deleted_atTIMESTAMP NULL
request_items8
keyidUUID
linkrequest_idUUID FK→warehouse_requests
linkitem_idUUID FK→items
requested_qtyDECIMAL(10,2)
approved_qtyDECIMAL(10,2)
issued_qtyDECIMAL(10,2)
statusENUM(pending/available/missing/issued)
notesTEXT
stock_movements10
keyidUUID
linkitem_idUUID FK→items
linkwarehouse_idUUID FK→warehouses
movement_typeENUM(in/out/transfer/damage/adjustment)
quantityDECIMAL(10,2)
reference_typeVARCHAR(30)
reference_idUUID
linkuser_idUUID FK→users
notesTEXT
created_atTIMESTAMP
💰 المجموعة 7 · المالية والمشتريات

Purchasing & Finance · 8 جداول

purchase_orders14
keyidUUID
codeVARCHAR(20) UNIQUE (PR-NNN)
linksupplier_idUUID FK→suppliers
linkproject_idUUID FK→projects
linkrequest_idUUID FK→warehouse_requests NULL
subtotalDECIMAL(12,2)
taxDECIMAL(12,2)
shippingDECIMAL(12,2)
totalDECIMAL(12,2)
statusENUM(draft/pending/approved/ordered/received/cancelled)
expected_deliveryDATE
actual_deliveryDATE NULL
linkcreated_byUUID FK→users
created_atTIMESTAMP
po_items8
keyidUUID
linkpo_idUUID FK→purchase_orders
linkitem_idUUID FK→items
quantityDECIMAL(10,2)
unit_priceDECIMAL(10,2)
received_qtyDECIMAL(10,2)
colorVARCHAR(50)
notesTEXT
invoices15
keyidUUID
codeVARCHAR(30) UNIQUE
invoice_typeENUM(client/supplier)
linkproject_idUUID FK→projects
linkclient_idUUID FK→clients NULL
linksupplier_idUUID FK→suppliers NULL
subtotalDECIMAL(14,2)
vat_amountDECIMAL(12,2)
discountDECIMAL(12,2)
totalDECIMAL(14,2)
issue_dateDATE
due_dateDATE
paid_dateDATE NULL
statusENUM(draft/issued/paid/overdue/cancelled)
e_invoice_uuidVARCHAR(100)
payments12
keyidUUID
codeVARCHAR(30) UNIQUE
linkinvoice_idUUID FK→invoices
amountDECIMAL(14,2)
payment_methodENUM(bank/card/fawry/wallet/cash)
reference_numberVARCHAR(100)
receipt_urlTEXT
payment_dateTIMESTAMP
verified_atTIMESTAMP NULL
linkverified_byUUID FK→users NULL
statusENUM(pending/verified/failed/refunded)
notesTEXT
budgets9
keyidUUID
linkproject_idUUID FK→projects
categoryVARCHAR(50)
allocatedDECIMAL(12,2)
committedDECIMAL(12,2)
spentDECIMAL(12,2)
remainingDECIMAL(12,2) (computed)
alert_thresholdDECIMAL(5,2) DEFAULT 85.00
updated_atTIMESTAMP
transactions10
keyidUUID
typeENUM(income/expense/transfer)
amountDECIMAL(14,2)
categoryVARCHAR(50)
linkproject_idUUID FK→projects NULL
reference_typeVARCHAR(30)
reference_idUUID
descriptionTEXT
transaction_dateDATE
created_atTIMESTAMP
⚙️ المجموعة 8 · النظام والسجلات

System & Logs · 4 جداول

audit_logs12
keyidBIGSERIAL
linkuser_idUUID FK→users NULL
actionVARCHAR(50)
entity_typeVARCHAR(50)
entity_idUUID
old_valuesJSONB
new_valuesJSONB
ip_addressINET
user_agentTEXT
risk_levelENUM(low/medium/high)
device_infoJSONB
created_atTIMESTAMP
quality_issues13
keyidUUID
codeVARCHAR(20) UNIQUE
linkproject_idUUID FK→projects
linkdepartment_idUUID FK→departments
severityENUM(low/medium/high/critical)
titleVARCHAR(200)
descriptionTEXT
linkreported_byUUID FK→users
linkassigned_toUUID FK→users NULL
statusENUM(open/in_progress/fixed/verified/closed)
block_executionBOOLEAN
resolved_atTIMESTAMP NULL
created_atTIMESTAMP
workflows10
keyidUUID
codeVARCHAR(50) UNIQUE
nameVARCHAR(150)
trigger_eventVARCHAR(50)
stepsJSONB
conditionsJSONB
escalation_rulesJSONB
is_activeBOOLEAN
versionINTEGER
updated_atTIMESTAMP
settings5
keykeyVARCHAR(100)
valueJSONB
scopeENUM(system/user/department)
scope_idUUID NULL
updated_atTIMESTAMP
📅 المجموعة 9 · قسم التخطيط · NEW

Planning Department

11 جدول · جدولة بنود التنفيذ · نسب التقدم · فحوصات الجودة · التبعيات التسلسلية · مزايا VIP · إدارة العقارات · المستأجرين · الصيانة · الإيجارات · التقارير الربعية.

planning_schedules10 fields
keyidUUID
linkproject_idUUID FK→projects
period_typeENUM(weekly/biweekly)
period_startDATE
period_endDATE
linkcreated_byUUID FK→users
overall_progressDECIMAL(5,2)
statusENUM
created_atTIMESTAMP
updated_atTIMESTAMP
schedule_items12 fields
keyidUUID
linkschedule_idUUID FK→planning_schedules
titleVARCHAR(200)
item_typeVARCHAR(50)
sequence_orderINT
planned_startDATE
planned_endDATE
linkassigned_engineer_idUUID FK→users
progress_percentDECIMAL(5,2)
statusENUM(locked/active/100/approved)
delay_daysINT
created_atTIMESTAMP
item_progress9 fields
keyidUUID
linkitem_idUUID FK→schedule_items
linkreported_byUUID FK→users
progress_percentDECIMAL(5,2)
notesTEXT
photosJSON
delay_reasonTEXT NULL
reported_atTIMESTAMP
created_atTIMESTAMP
quality_checks11 fields
keyidUUID
linkitem_idUUID FK→schedule_items
linkchecked_byUUID FK→users
checklistJSON
passed_countINT
failed_countINT
notesTEXT
photosJSON
decisionENUM(approved/rejected)
approved_atTIMESTAMP NULL
created_atTIMESTAMP
item_dependencies5 fields
keyidUUID
linkitem_idUUID FK→schedule_items
linkdepends_on_item_idUUID FK→schedule_items
requires_quality_passBOOLEAN
created_atTIMESTAMP
vip_benefits9 fields
keyidUUID
linkclient_idUUID FK→clients
tierENUM(silver/gold/platinum)
membership_noVARCHAR(50) UNIQUE
benefits_jsonJSON
property_mgmt_activeBOOLEAN
discount_percentDECIMAL(5,2)
expires_atDATE
created_atTIMESTAMP
properties14 fields
keyidUUID
codeVARCHAR(20) UNIQUE
linkowner_client_idUUID FK→clients
linkproject_idUUID FK→projects
nameVARCHAR(200)
typeENUM(villa/apartment/duplex/office/chalet)
addressTEXT
area_sqmDECIMAL(10,2)
monthly_rentDECIMAL(12,2)
statusENUM(rented/vacant/maintenance)
photosJSON
condition_scoreDECIMAL(3,1)
created_atTIMESTAMP
updated_atTIMESTAMP
tenants11 fields
keyidUUID
linkproperty_idUUID FK→properties
nameVARCHAR(200)
phoneVARCHAR(20)
emailVARCHAR(255)
id_numberVARCHAR(50)
contract_startDATE
contract_endDATE
deposit_amountDECIMAL(12,2)
statusENUM(active/ended)
created_atTIMESTAMP
maintenance_records12 fields
keyidUUID
linkproperty_idUUID FK→properties
typeENUM(ac/plumbing/electrical/painting/general)
priorityENUM(scheduled/urgent/emergency)
linktechnician_idUUID FK→users
descriptionTEXT
scheduled_dateDATE
completed_dateDATE NULL
costDECIMAL(12,2)
photosJSON
statusENUM(scheduled/in_progress/completed)
created_atTIMESTAMP
rent_payments9 fields
keyidUUID
linktenant_idUUID FK→tenants
linkproperty_idUUID FK→properties
period_monthDATE
amountDECIMAL(12,2)
paid_atTIMESTAMP NULL
payment_methodVARCHAR(50)
statusENUM(pending/paid/late)
created_atTIMESTAMP
quarterly_reports10 fields
keyidUUID
linkclient_idUUID FK→clients
yearINT
quarterINT
total_rentDECIMAL(15,2)
total_maintenanceDECIMAL(15,2)
net_profitDECIMAL(15,2)
occupancy_rateDECIMAL(5,2)
recommendationsJSON
generated_atTIMESTAMP
rule

قاعدة التسلسل الذهبية · Sequential Execution Rule

جدول item_dependencies يحدد البنود السابقة لكل بند. التطبيق يمنع تشغيل أي بند جديد إلا بعد:

  • ✓ السابق وصل ١٠٠٪ في schedule_items.progress_percent
  • ✓ quality_checks.decision = 'approved'
  • ✓ كل التعديلات الهامة معالجة (failed_count = 0)
⚡ الأداء والتحسين

معايير الأداء والتحسين

قاعدة البيانات مصممة بمعايير احترافية لضمان أداء عالٍ مع نمو البيانات · فهرسة ذكية للاستعلامات المتكررة · بحث متقدم بالعربية · حماية ونسخ احتياطي مستمر.

manage_search

الفهرسة للأداء

  • • فهرسة ذكية للإشعارات · استعلام الإشعارات غير المقروءة بسرعة
  • • فهرسة الاعتمادات · استعلامات المشروع المتكررة بحالاتها
  • • فهرسة سجل التدقيق · بحث سريع في النشاط حسب المستخدم والتاريخ
  • • فهرسة عضوية المشاريع · المشاريع النشطة لكل مستخدم
  • • فهرسة الفواتير · الفواتير المعلقة والمتأخرة فوراً
  • • فهرسة الأصناف · بحث المخزن السريع بالكود
translate

البحث الكامل بالعربية

  • • البحث في الاعتمادات · في عناوينها وأوصافها
  • • البحث في المحادثات · في كل الرسائل المتبادلة
  • • البحث في كتالوج الأصناف · بالاسم والماركة والمواصفات
  • • البحث في المشاريع · بالاسم والوصف والعملاء
  • • البحث الجغرافي · مواقع الصور بإحداثيات GPS
  • • دعم اللغة العربية · معالجة جذور الكلمات والمرادفات
📐 قواعد التصميم
  • • تطبيع كامل لجميع الجداول
  • • جداول وسيطة للعلاقات المعقدة
  • • حقول مرنة للبيانات المتغيرة
  • • حذف منطقي (Soft Delete) للسجلات
  • • سجل تدقيق شامل لكل العمليات
⚙ الأتمتة الذاتية
  • • تحديث وقت التعديل تلقائياً
  • • تسجيل أي تغيير في سجل التدقيق
  • • تحديث تقدم المشروع بشكل مستمر
  • • تصعيد الاستفسارات غير المردود عليها
  • • التحقق من الميزانية قبل أي شراء
🔒 الأمان والنسخ
  • • تشفير كامل للبيانات المخزنة
  • • تشفير إضافي للبيانات الحساسة
  • • نسخ احتياطي مستمر ومنتظم
  • • نسخ للقراءة فقط لتسريع التقارير
  • • إدارة احترافية للاتصالات والأحمال
📋 العمليات الأساسية على البيانات

القدرات الرئيسية

قاعدة البيانات تدعم كل عمليات النظام الأساسية بأداء عالٍ وسلامة بيانات كاملة · عبر استعلامات محسّنة وعلاقات منطقية بين الجداول.

folder_special

عرض مشاريع العميل النشطة

استعراض كل المشاريع الجارية لعميل معين مع حالة كل مشروع · نسبة التقدم · الموعد المتوقع للتسليم · مرتبة حسب الأقرب موعداً.

verified

الاعتمادات بانتظار قرار العميل

قائمة بكل الاعتمادات التي تنتظر موافقة العميل أو رفضه · مع التفاصيل الكاملة · الأسعار التقديرية · التصنيف · وقت الإرسال.

warning

المواد الناقصة في المشروع

تحديد كل الأصناف المطلوبة وغير المتوفرة بالكامل في المخزن · مع الكمية المطلوبة · المتوفر · الناقص · للتحويل التلقائي للمشتريات.

payments

التقرير المالي للمشروع

عرض الميزانية موزعة على البنود · المخصص · الملتزم به · المنفق · المتبقي · النسبة المئوية للاستهلاك من كل بند.

store

تقييم الموردين الأفضل

ترتيب الموردين حسب الأداء · معدل التسليم · عدد الطلبات · التقييم العام · لاتخاذ قرار شراء أفضل.

trending_up

الاستفسارات للتصعيد

رصد كل الاستفسارات التي لم تجد رداً خلال الفترة المحددة · مع تحديد القسم المسؤول · مستوى التصعيد المطلوب.