بسم الله الرحمن الرحيم
العلاقة بين Block رئيسي و Block فرعي هي علاقة بين المفتاح الأساسي Primary Key في الـ Block رئيسي و المفتاح الجانبي Foreign Key في الـ Block الفرعي وهذا ال Block الفرعي يمكن أن يكون رئيسي لـ Block أخر فرعي ويمكن ان يكون الــ Block رئيسي لأكثر من فرعي .
توجد طريقتين لانشاء العلاقة بين Block رئيسي و Block فرعي وهي على النحو التالي :-
الطريقة الاولى :- إنشاء علاقة بين Block رئيسي و Block فرعي باستخدام Data Block Wizard :
استدعي Data Block Wizard ثم اتبع الخطوات لانشاء Block رئيسي واستخدم جدول الــ S_ORD بعد ما تنتهي اعد تشغيل Data Block Wizard وذلك لعمل Block فرعي و استخدم جدول الـ S_ITEM واستمر في خطوات الانشاء الـ Block الى أن تصل الى الشاشة التالية
(IMG:
http://www.d4ar.com/test/1/p1.JPG)
وهذه الشاشة تسمى Master-Detail page وفي هذه الشاشة اختار Auto-Join data blocks ثم اضغط على مفتاح Create Relationship سيظهر مربع لاختيار الـ Block S_ORD ثم اضغط على OK بعدما تختار الـ Block S_ORD وسيتم انشاء العلاقة أتوماتيكيا بي الـ Blocks وسيتم كتابة شرط العلاقة بين Master - Detail اضغط Next و استمر في انشاء الـ Data Block كما شرحت في الدرس السابق
الطريقة الثانية :- إنشاء علاقة بين Block رئيسي و Block فرعي بالطريقة اليدوية :
ننشئ Block S_ORD بطريقة طبيعية وبعدها ننشئ Block S_ITEM واذا وصلنا الى شاشة Master-Detail page نتعداها بحيث اننا لا نضع علاقة بينها واذا انتهينا من الانشاء نختار الـ Block الذي سيكون رئيسي وهوا (S_ORD) سيتفرع منه ثلاث اختر Relation اضغط مفتاح انشاء Create ستظهر نافذة انشاء علاقة جديدة في هذه الشاشة يتم تحديد اسم العلاقة و تحديد Block الفرعي ثم اكتب شرط الربط وسيكون على النحو التالي (S_ITEM.ORD_ID = S_ORD.ID) ثم اضغط OK وهذه الشاشة تحتوي الاختيارات التالية :
Non-Isolated :- لمنع حذف سجل من Block رئيسي عندما يوجد سجل في Block فرعي .
Isolated :- فقط يتم حذف السجل من Block الرئيسي دون Block الفرعي .
Cascading :- لحذف السجل من الـ Block الرفرعي عند حذف السجل من Block الرئيسي (وهذا الافضل بنسبه لي واتوقع للغير كذلك ) .
بالاضافة الى الاختيارات السابقة توجد اختيارات أخرى :-
Deferred with auto Query :- عند عمل استعلام يظهر الاستعلام في الـ Block الرئيسي ولا يظهر في الـ Block الفرعي الا عند الانتقال الى الـ Block الفرعي .
Prevent Masterless Operations :- للتأكد من ان الـ Block الفرعي لا يمكن عمل استعلام علية أو اضافة سجل علية الا بعد ظهور سجل في Block الرئيسي .
مع تحياتي وتمنياتي للجميع