الدرس 10: نمذجة العلاقات: واحد لمتعدد (1:N)
هذا هو النوع الأكثر شيوعًا من العلاقات في قواعد البيانات العلائقية وهو الأساس لتجنب تكرار البيانات.
تعريف علاقة واحد لمتعدد (1:N)
تعني علاقة 1:N ما يلي:
- يمكن أن يرتبط سجل واحد في الجدول 'الأصلي' (جانب 'الواحد') بالعديد من السجلات في الجدول 'الفرعي' (جانب 'المتعدد').
- يمكن أن يرتبط كل سجل في الجدول 'الفرعي' بسجل واحد فقط في الجدول 'الأصلي'.
تطبيق 1:N
نفرض هذه العلاقة عن طريق وضع المفتاح الأساسي لجانب 'الواحد' في جانب 'المتعدد' كمفتاح خارجي.
مثال: الأقسام والموظفون
- يمكن أن يحتوي القسم (الأصل) على العديد من الموظفين (الفروع).
- يمكن أن ينتمي الموظف (الفرع) إلى قسم واحد فقط (الأصل).
- الجدول الأصلي (Departments): المفتاح الأساسي =
DeptID - الجدول الفرعي (Employees): المفتاح الخارجي =
DeptID
sql -- 1. إنشاء جدول 'الواحد' (الأصل) CREATE TABLE Departments ( DeptID INTEGER PRIMARY KEY, DeptName VARCHAR(50) );
-- 2. إنشاء جدول 'المتعدد' (الفرع) CREATE TABLE Employees ( EmployeeID INTEGER PRIMARY KEY, Name VARCHAR(100), DeptID INTEGER, -- المفتاح الخارجي (FK) FOREIGN KEY (DeptID) REFERENCES Departments(DeptID) );
إذا كان لدينا DeptID 10 ('Marketing')، يمكن أن يكون لدينا 100 موظف يشيرون جميعًا إلى DeptID 10. يتشارك الموظفون المائة بيانات القسم دون تكرار اسم القسم 100 مرة.