أنواع العلاقات :
- One To One
- One To Many
- Many To Many
- Self Join
- مفهوم العلاقات هو ان بيانات جدول تعتمد على بيانات جدول اخر يتم الربط بينهم ب مفاتيح
primary key and foreign key
وعلاقة درسنا اليوم One To One هو ان بيانات جدول ما تعتمد على جدول أخر بدون ان تكرر بيانات جدول المفتاح الاساسى وربط المفتاح الرئيسى للجدول الاول بمفتاح الرئيسى للجدول التانى كما فى صورة عنوان الدرس وهى الجدولين بينهم علاقة طرفها مفتاح ناحية كل جدول .
primary key and foreign key
وعلاقة درسنا اليوم One To One هو ان بيانات جدول ما تعتمد على جدول أخر بدون ان تكرر بيانات جدول المفتاح الاساسى وربط المفتاح الرئيسى للجدول الاول بمفتاح الرئيسى للجدول التانى كما فى صورة عنوان الدرس وهى الجدولين بينهم علاقة طرفها مفتاح ناحية كل جدول .
كليك يمين على Databases ونختار New Database
نفتح علامة + لإظهار الخيارات الموجودة تحت قاعدة البيانات.
من على Tables كليك يمين ثم New ثم Table
سوف ننشئ جدول للأشخاص و جدول لفصيلة الدم على سبيل المثال ، وهو مثال مناسب جدا للعلاقة
One To One حيث ان لكل شخص فصيلة دم واحدة ويمكن تتكرر فصيلة الدم لأشخاص آخرين لكن لا يمكن ان يتكرر لشخص ما فصيلة دم أخرى .
نقوم بعمل جدول بالشكل التالى{ Id = int } & { PersonName = nvarchar(90) }
ايضا بنفس تحديد الحقل الاساسى نقوم بإضافة الترقيم تلقائى له من خانة Identity Specification
تكون بشكل طبيعى No نعدلها لـ Yes
بنفس الطريقة نقوم بإنشاء جدول اخر بإسم TblBloodType ، لكن بدون عمل Identity Specification
والسبب ان الحقل الاساسى فى جدول نوع الدم سيحفظ رقم الحقل الاساسى بجدول TblPersons.
بما أن جدول انواع فصيلة الدم يحتاج بيانات من الاشخاص فإن جدول فصيلة الدم سيكون جدول الحقل الاجنبى foreign key وجدول الاشخاص سيكون جدول الحقل الاساسى primary key
1- لأنشاء علاقة جديد إما من قائمة Table Designer نختار Relationships أو كما فى الصورة من شريط الادوات
2- نضغط على زر Add لإضافة علاقة جديدة
3- نضغط على الزر المحدد كما فى الصورة لإختيار حقول وجداول العلاقة
نجرب الان الادخال بيانات للتأكد من صحة العلاقة
2- نضغط على زر Add لإضافة علاقة جديدة
3- نضغط على الزر المحدد كما فى الصورة لإختيار حقول وجداول العلاقة
يظهر لنا بشكل افتراضى جدول TblBloodType كـ Foreign Key لأننا كنا نقف عليه اثناء بناء العلاقة كما شرحنا بالاعلى ، نختار حقل المفتاح الاساسى لهذا الجدول
ثم من خانة Primary key Table : نختار الجدول الاخر الاساسى للعلاقة وهو TblPersons
ثم نختار حقل المفتاح الاساسى له ايضا لأننا كما ذكرنا سابقا فى هذه العلاقة سنربط المفتاحين الاساسين لكل جدول ببعضهما . ثم Ok و Close لشاشة العلاقات الاساسية
ثم نختار حقل المفتاح الاساسى له ايضا لأننا كما ذكرنا سابقا فى هذه العلاقة سنربط المفتاحين الاساسين لكل جدول ببعضهما . ثم Ok و Close لشاشة العلاقات الاساسية
نجرب الان الادخال بيانات للتأكد من صحة العلاقة
أدخلنا هنا 4 اشخاص فى جدول الاشخاص نكتب الاسم فقط وقاعدة البيانات ستكتب هى Id التلقائى
نكتب فى IdPersons رقم الشخص فى قاعدة البيانات Id ونكتب فى خانة فصيلة الدم فصيلة دمه
نلاحظ ان الشخص الاول محمد والشخص الثالث عمرو لهم نفس فصيلة الدم ويمكن لاشخاص اخرين يكونو مشتركين فى فصيلة الدم بدون مشاكل .
نلاحظ ان الشخص الاول محمد والشخص الثالث عمرو لهم نفس فصيلة الدم ويمكن لاشخاص اخرين يكونو مشتركين فى فصيلة الدم بدون مشاكل .
لكن نلاحظ ان عن ادخال الشخص رقم 3 مرة اخرى للشخص عمرو بفصيلة دم مختلفة فإن قاعدة البيانات ترفض تكرار الشخص مرة اخرى مع العلم انه تم تكرار نوع الفصيلة سابقا كما فى الصورة
،، تخيلو ان هذا جدول حقيقى فى مؤسسة ومدخل البيانات يمكن ان يخطئ ويكتب اسم شخص مرتين فصيلة دم مختلفة :)
الان العلاقة جاهزة للعمل ، وسوف نقوم بعمل دروس لكيفية استخدامها فى برنامج إن شاء الله
=========================
ملاحظة هامة جدا
:: تعديل ::
:: تعديل ::
حيث انهم مهم وأصح لبناء الجداول وأن درسنا مقتصر على بناء العلاقة فقط ...
وحيث ان مهمتنا إيصال المعلومة بشكل كامل سنوضح الطريقة بشكل كامل ان شاء الله
نفتح جدول TblBloodType فى وضع Design ونضيف حقل ترقيم تلقائى باسم Id ونوعه int ونفعل الترقيم التلقائى لهذا الحقل من خاصية Identity Specification كما فعلنا فى جدول الاشخاص .
وسنضيف له مفتاح اساسى ايضا لكن يجب علينا تحديد كلا من الحقلين المراد عمل لهم مفتاح اساسى معا حتى لا يحذف مفتاح الحقل الاخر ونضغط على زر المفتاح من شريط الادوات ، كما فى الصورة .
بهذه الطريقة يتم اضافة حقل ترقيم تلقائى مع كل سجل
وسوف نشرح بإذن الله طريقة اختيار الشخص من Combobox وحفظ الـ Id فى الجدول فى درس لاحق
مع لغة البرمجة #C بالتفصيل .
تعليقات
إرسال تعليق