الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

مشكلة بعلاقة متعدد الى متعدد

مغلق
بدأه مبتدىء جدا في 12 مارس 2003 · 15 رد · 831 مشاهدة · في مراجعة المواضيع
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

لعلاج مشاكل العلاقه متعدد الى متعدد (علاقة طرف بطرف) نضع جدول ثالث يعرف بجدول الوصل به مفتاح اساسي ونفوم بعمل علاقة راس بطرف بين هذا الجدول وكلا الجدولين الاخرين ....

قمت بعمل ذلك ولم تنجح في المثال المرفق فما الحل لكي تنجح هذه العلاقه ولا تقوم بتكرار البيانات ....

المشكله تتضح بالاستعلام المسمى reltarf

reltarf.zip

#2

جدولي customer و sales و اضحين و علاقتهما 1 الي متعدد

اما pay فيرجي تحديد الهدف منه

#3

الهدف من جدول sales هو المبيعات الى العميل وعلاقته واحد الى متعدد مع جدول customer ----

اما جدول pay فيوضح سدادات العميل سواء بنقدي او شيكات او كمبيالات او خصومات وعلاقته واحد الى متعدد مع جدول customer ----

طبعاً المفروض كنت اضع جدول pay و sales في جدول واحد من الاول ولكن عندي بيانات مبيعات وسدادات سنتان يعنى البيانات كثيره فليس امامي حل الى عمل علاقة واحد الى متعدد بين الجدولين لأني اريد ان اضعهما في استعلام واحد يبين مبيعات وسدادات العميل (ولكن طبعاً بدون تكرار للبيانات)

#4
اقتباس
الهدف من جدول sales هو المبيعات الى العميل وعلاقته واحد الى متعدد مع جدول customer ----

اما جدول pay فيوضح سدادات العميل سواء بنقدي او شيكات او كمبيالات او خصومات وعلاقته واحد الى متعدد مع جدول customer ----

العلاقات هكذا سليمة

فاين متعدد الي متعدد ؟؟

مثال علي متعدد الي متعدد من موضوع العلاقات فى قسم الدروس ( الجداول 7 )

مثال : جدول الطلبيات و المنتجات بينهما علاقة من نوع متعدد الي متعدد يتم عملها عن طريق جدول تفاصيل الطلبيات .

الطلبية الواحدة قد يكون فيها أكثر من منتج ، و كل منتج يكون موجود فى عدة طلبيات

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

#5

كيف تكون سليمه وهي تعطي نتائج متكرره في الاستعلام

اقصد العلاقه متعدد الى متعدد بين جدولين sales و pay

بالنسبه لمضوع العلاقات في قسم الدروس بالطبع قمت بالتمعن به اولاً

#6

الاخ محمد طاهر مشرف المتندى

الاخ مبتدىء جدا

الاخوة الاعضاء و الزوار

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

حاولت من جانبي و استنتجت أن منع التكرار نتيجة للعلاقة بين الجداول المذكوة غير ممكن لأن الاستعلام بظهر سجلات العلاقة مكررة مره لسجلات البيع و يظهر به السجلات الاخرى المرتبطة بالجدول الرئيسي من الجدول الاخر وهو حساب العملاء ويتكرر مره اخرى عندما يظهر سجلات العملاء المرتبطة بالجدول الرئيسي وان الجدولين الفرعيين غير مرتبطين بحقل مشترك اي ان هناك جدول رئيسي و جدولين فرعيين بحيث بكون الجدولين عبارة عن مستودع لحفظ حركة البيع و سجلات حساب العملاء عليه فإن النتيجة غير مفيدة في هذه الحالة فسؤالي للأخ (( مبتدىء جدا )) مالهدف من هذا الاستعلام ..؟ ان كان الهدف ربط نموذج بهذا الاستعلام فليس هذا شيى عملياُ مفيداً و الطريقة الصحيحة حسب ما تعلمتها ان تنشئ نموذج مرتبط مع الجدول الرئيسي والمسمى customer و عمل نموذجين فرعين للجدولين الفرعين وهما sales و pay منضمين للنموذج الرئيسي .

و انا استخدم هذه الطريقة دائماً

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

و للجميع خالص تحياتي ،،،،،،،

قال الله تعالى : و تعاونوا على البر و التقوى ولا تعاونوا على الاثم و العدوان
#7

أخي مبتدىء جدا أقصد متواضع جداً.

جرب من خصائص الإستعلام واختر قيم فريدة=نعم بدل لا الافتراضية.

وفقك الله.

#8

اخي الكريم المزيني (ذو العبارات البليغه دائماً)

حاولت عمل القيم فريده من خصائص الاستعلام ولكن ايضا يعطي نتائج متكرره,,

اخي جزيرة الاسلام

كلامك سليم وهذا ما افعله حالياً (عمل نموذجين فرعيين لكل من الجدولين sales و pay منضمين للنموذج الرئيسي customer)

ولكن الهدف من هذا الاستعلام هو عمل تقرير يضم كشف حساب للعميل ... بمعنى اوضح اريد ان ااخذ من جدول salse الجانب المدين للعميل وهو عباره عن حاصل ضرب حقلي (صادر * سعر الوحدة) واخذ الجانب الدائن للعميل من جدول salse بحيث اضعهما في تقرير كشف حساب تقليدي وهو مكون من مدين ودائن ورصيد ...

ولكم جزيل الشكر على الاستجابه

#9

الاخ مبتدىء جدا

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

الان اتضح الامر جرب التالي :

اولاً افتح الاستعلام ثم اضفط على علامة الاستجمى وهي العلامة الظاهرة في الاعلى والتي على شكل حرف M ( نايمة على حنب ) سوف يظهر بعدها حقل جديد في خانة المعاير اختر تجميع او sum للحقلين من الجدولين الفرعين sales و pay و اترك اي حقل من الجدول الرئيسي على كلمة Group By بما فيها حقل الربط " الكود " ثم سم بأسم الله و شغل الاستعلام و اذا النتيجة هي المطلوبة . امل ان لا تنساني من دعائك في ظاهر الغيب انت و الزوار الكرام ....

قال الله تعالى : و تعاونوا على البر و التقوى ولا تعاونوا على الاثم و العدوان
#10

اخي جزيرة الاسلام

اذا قمت بعمل ذلك تعطي نفس النتائج المتكرره ولكن تكون عل هيئة مجاميع لأني قمت بوضع Sum اي تعطي ارقام كبيره ومبالغ بها وهذه الارقام الكبيره نتيجه لجمع جميع الارقام المتكرره لكل عميل ,,,,

وسواء توصلت لحل المشكله او لم اتوصل فجزاك الله خير الجزاء على تعاونك :)

#11

مبتدىء جدا

هذا ما توصلت اليه اخيراً

امل ان يكون الحل النهائي ...

في هذ الاستعلام

final_rsults.zip

قال الله تعالى : و تعاونوا على البر و التقوى ولا تعاونوا على الاثم و العدوان
#12

والله ما عارف اقولك ايه على طول بالك ... لكن هذا يجزم ويؤكد انك كريم وكرمك غير محدود ..

اخي العزيز .. المثال الذي قمت بوضعه اعتمد على عمل مجاميع اولاً وكشف الحساب يجب ان يكون مفصل والمجاميع تكون في نهاية الكشف (اي يجب عند عمل العلاقه الاعتماد على البيانات التفصيليه دون مجاميع)

اعتقد انه لا يمكن عملياً عمل علاقه بين هذين الجدولين Pay و Sales ,,

واكرر شكري لك الف مليون مره

#13

أخي الكريم متميز جداً(f)

أرجوا ان يكون هذا الحل هو ماتريد وهذا حسب مافهمت من المشكلة

ولك تحياتي اخوك خلودي;)

reltarf.zip

#14

اخي العزيز خلوودي .....

شكراً على ردك

النتائج ايضاً متكرره

#15

آسف لم ألاحظ الاستعلام نفسه و لكن تكلمت عن العلاقات الموجودة فى القاعدة نفسها

مفهوم القاعدة كما هي مصممة أنه لا توجد علاقة ثابتة و مباشرة بين أوامر المبيعات و الدفعات النقدية

أي أن العميل يدفع دفعات منفصلة عن أوامر التوريد

و معني ذلك أنه لا توجد بينهما علاقة مباشرة

بمعني أنه عميل معين اشتري من خلال ثلاث اوامر توريد متتالية قيمة كل منها ألف جنيه ، و سدد دفعتان بقيمة 700 جنيه كل دفعة ثم ثالثة بقيمة 1400

بدون تحديد أي الدفعات تخص أي أمر توريد

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

أما الاستعلام

فاذا أردت استعلاما بهذا الشكل ، فهذا يعني وجود علاقة بين اوامر التوريد و الدفعات ، و عليه فان العلاقات تكون غير سليمة بهذا الشكل

و انما يكون هناك حلول أخري مثل مثلا ربط الدفعات باوامر التوريد ، اي تكون كل دفعة مخصصة لامر توريد محدد و يكون هناك أكثر من دفعة لامر التوريد نفسه

#16

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

النتائج متكرره.......النتائج متكرره

انا لم اطلع على الملف فليس لي خبره في الاكسس

ولكن لحل المشكله اقرأ ثم قرأ عن الـ Normalization هنا تجد حل لمشكلة

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

وهي تتبع للتصميم Top Down اي انها تاخذ العلاقات ككل (مجموعه) ثم تقوم بتقسيمها الى علاقات اصغر حجما وكل هذا لتلافي التكرار وتسهيل العمليات على قواعد البيانات وشخص يدعى Codd هو الذي اقترح الثلاثه انواع الاولى

1NF

2NF

3NF اغلب الناس يكتفون عند وصولهم الى هذه المرحله

4NF

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

نصيحه من اخوكم يتمنى كل الخير لكم :

الاساس اولا

الاساس اولا

الاساس اولا

والله من وراء القصد

هذا الموضوع مغلق.

مواضيع مشابهة