الانتقال إلى المحتوى

درس إنشاء العلاقة بين Block رئيسي و Block فرعي


الماضي

Recommended Posts

بسم الله الرحمن الرحيم



السلام عليكم ورحمة الله وبركاته،،

الدرس تابع الى ما سبق في هذه الوصلة وهو شرح تفصيل للموضوع الي راح :(

العلاقة بين 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 الى أن تصل الى الشاشة التالية

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 الفرعي .

Deferred without auto Query :- لا ادري ما الفائدة منها ??

Prevent Masterless Operations :- للتأكد من ان الـ Block الفرعي لا يمكن عمل استعلام علية أو اضافة سجل علية الا بعد ظهور سجل في Block الرئيسي .

وهذي الصورة توضح المقصود ان شاء الله

p2.JPG

اتمنى ان الدرس كان واضح ومفيد للمبتدئين واتمنى اشوف ردودكم عن الدرس

يرجى عدم نقل الموضوع الى منتديات اخرى الى بوضع الوصله في اي منتدى

تحياتي،،،

رابط هذا التعليق
شارك

  • بعد 3 شهور...
  • بعد 4 أسابيع...

السلام عليكم ورحمة الله وبركاته,,,

اخي العزيز soka انا ما سويت الا الواجب علي علشان افيدكم ونتقدم في حياتنى والدعاااااااااااء :unsure:

تحياتي،،،

رابط هذا التعليق
شارك

  • بعد 1 شهر...
  • بعد 11 شهور...
  • بعد 1 شهر...
  • بعد 6 شهور...

مساء الخير اخي ماضي
لي سؤال على العلاقة بالطريقة اليدوية حيث انها لا تسمح بأجراء اكتر من علاقة
مثال
انا عندي في البلوك الرئيسي
رقم الطالب
اسم الطالب
عمر الطالب

وعندي في الملف الفرعي
رقم الطالب
اسم الطالب
عنوان الطالب

حاولت بالطريقة اليدوية ان اربط
رقم الطالب في الملف الرئيسي مع رقم الطالب في الملف الفرعي
واريد ايضا ان اربط
اسم الطالب في الملف الرئيسي مع اسم الطالب في الملف الفرعي
ولكنه لم يعطينى غير عملية ربط واحدة
ارجو الاجابة جزاك الله خيرا
اختك في الله ايمان

رابط هذا التعليق
شارك

  • بعد 1 شهر...

اخي من رقم الطالب يمكنك ان تظهر اسم الطالب في البلوك الفرعي ولاداعي لربط اسم الطالب نمره اخرى
وذاللك بعمل عنصر جديدي في الفورم تسميه اسم الطالب وعند تعير رقم الطالب تعمل استعلام يظهر اسم الطالب من الجدول الرئيس وتظعه في الحقل الجديد الذي سويته عل الفورم

رابط هذا التعليق
شارك

  • بعد 3 أسابيع...

جزاك الله خير اخي حيدر
بس مش فاهمة عليك لانه انا عندي اكتر من برايمري كي ولازم كلهم يتم ربطهم مع بعض
يا ريت التوضيح اكتر لو سمحتوا
اختكم في الله ايمان

رابط هذا التعليق
شارك

  • بعد 9 سنة...

انا عندي اكتر من برايمري كي ولازم كلهم يتم ربطهم مع بعض 
يا ريت التوضيح اكتر لو سمحتوا

رابط هذا التعليق
شارك

انضم إلى المناقشة

يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.

زائر
أضف رد على هذا الموضوع...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   تمت استعادة المحتوى السابق الخاص بك.   مسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

جاري التحميل
×
×
  • أضف...

برجاء الإنتباه

بإستخدامك للموقع فأنت تتعهد بالموافقة على هذه البنود: سياسة الخصوصية