اذهب إلى المحتوى

السؤال

نشر (معدل)

السلام عليكم

لدي جدولين program و organization ولدى كل منهما social media accounts مختلف عن الاخر 

هل الحل ان: 

١- اقوم بعمل جدول social_media لديه علاقة one to one بجدول program وعلاقة one to one بجدول organization

٢- او اقوم بعمل جدول مخصص لكل من الجدولين program و organazation على حدة.

او الممارسة الأفضل ؟ اذا كانت هناك طريقة أخرى.

تم التعديل في بواسطة شرف الدين2
توضيح العنوان

Recommended Posts

  • 0
نشر

للإجابة على هذا السؤال يجب توفير بعض المعلومات 

  1. هل لكل برنامج او مؤسسة عدة حسابات ولكن لا يتكررو لكل جدول, بمعنى ان يمكن للبرنامج أن يحمل عددًا من الحسابا ونفس الأمر للمؤسسة ولكن لا يمكن لمؤسسة أن تحتوي على حساب موجود في برنامج؟ في هذه الحالة من الأفضل إنشاء جدول واحد يربط بين الحسابات وبين البرنامج أو المؤسسة
  2. هل يمكن للمؤسسة أن تحتوي على حساب موجود في برنامج أو العكس ولكن لا يمكن لمؤسستين أو برنامجين أن يحتوا على نفس الحساب؟ في هذه الحالة ننشئ جدولين أحدهما بين الحسابات والبرنامج والأخر بين الحسابات والمؤسسة
  • 0
نشر
بتاريخ 39 دقائق مضت قال شرف الدين2:

للإجابة على هذا السؤال يجب توفير بعض المعلومات 

  1. هل لكل برنامج او مؤسسة عدة حسابات ولكن لا يتكررو لكل جدول, بمعنى ان يمكن للبرنامج أن يحمل عددًا من الحسابا ونفس الأمر للمؤسسة ولكن لا يمكن لمؤسسة أن تحتوي على حساب موجود في برنامج؟ في هذه الحالة من الأفضل إنشاء جدول واحد يربط بين الحسابات وبين البرنامج أو المؤسسة
  2. هل يمكن للمؤسسة أن تحتوي على حساب موجود في برنامج أو العكس ولكن لا يمكن لمؤسستين أو برنامجين أن يحتوا على نفس الحساب؟ في هذه الحالة ننشئ جدولين أحدهما بين الحسابات والبرنامج والأخر بين الحسابات والمؤسسة

لكل موسسة حسابات خاصة (اي رابط الحساب) على توتير وانستقرام تليجرام ..

ولكل برنامج ايضا رابط لحساباته على التواصل الاجتماعي مختلف عن المؤسسة

  • 0
نشر
بتاريخ 2 دقائق مضت قال Asma Ameen:

لكل موسسة حسابات خاصة (اي رابط الحساب) على توتير وانستقرام تليجرام ..

ولكل برنامج ايضا رابط لحساباته على التواصل الاجتماعي مختلف عن المؤسسة

إذًا يكون الحل هو الحل الأول أن يتم عمل جدول واحد يحتوي على الحسابات ومُعرف البرنامج أو المؤسسة, بتلك الطريقة نضمن أنه لا يمكن لبرنامج أو مؤسسة الحصول على نفس الحساب لأن بكل بساطة الحساب نفسه موجود في نفس الجدول وسيكون نادر ولا يمكن أن يتكرر مرتين بالإضافة إلى أن هنا يكون العلاقة بين الحساب والبرنامج  أو الحساب والمؤسسة many to one

  • 0
نشر (معدل)
بتاريخ 26 دقائق مضت قال شرف الدين2:

إذًا يكون الحل هو الحل الأول أن يتم عمل جدول واحد يحتوي على الحسابات ومُعرف البرنامج أو المؤسسة, بتلك الطريقة نضمن أنه لا يمكن لبرنامج أو مؤسسة الحصول على نفس الحساب لأن بكل بساطة الحساب نفسه موجود في نفس الجدول وسيكون نادر ولا يمكن أن يتكرر مرتين بالإضافة إلى أن هنا يكون العلاقة بين الحساب والبرنامج  أو الحساب والمؤسسة many to one

العلاقة ستكون one to one لان البرنامج مرتبط بـ model واحد في جدول socialـmedia 

حيث ان الجدول يحوي عدة اعمدة لكل منصة عمود ؟

اذا قمت بعمل جدول واحد سيحتوي على مفتاحين اجنبيين

احدهما للبرنامج والاخر للمؤسسة

ماذا لو اردت تخزين حسابات المؤسسة في الجدول 

ما قيمة المفتاح الاجنبي التابع للبرنامج ؟

 

 

تم التعديل في بواسطة Asma Ameen
  • 0
نشر
بتاريخ 10 دقائق مضت قال Asma Ameen:

العلاقة ستكون one to one لان البرنامج مرتبط بـ model واحد في جدول socialـmedia ؟

اذا قمت بعمل جدول واحد سيحتوي على مفتاحين اجنبيين

احدهما للبرنامج والاخر للمؤسسة

ماذا لو اردت تخزين حسابات المؤسسة في الجدول 

ما قيمة المفتاح الاجنبي التابع للبرنامج ؟

 

 

بما أن البرنامج له أكثر من حساب(لأنك قلتي حسابات) إذًا العلاقة واحد من البرنامج إلى كثير من الحسابات

وفي الحالة التي ذكرتيها يمكننا جعل المفتاح الأجنبي الغير مستخدم بدون قيمة وسيكون بشكل إفتراضي بnull

في حالة أنك قمتِ بعمل جدولين سيصبح الأمر معقدًا بعض الشئ حيث ستحتاجين أن تقومي بعمل check constraint بأن الحساب غير موجود في الجدول الأخر, و لا يمكنك أن تقومي بمناداة الجدول الأخر في الcheck constraint إلا عبر الدوال المُعرفة من قِبل المُستخدم  user-defined-functions مما سيجعلك تضطرين أن تقومين بجهد زائد وسيزيد أيضًا من تعقيد هيلكية قاعدة البيانات

لذا من الأفضل عمل جدول واحد للربط وجعل قيمة المفتاح الأجنبي الغير مستخدم بnull 

  • 0
نشر
بتاريخ 4 ساعات قال شرف الدين2:

بما أن البرنامج له أكثر من حساب(لأنك قلتي حسابات) إذًا العلاقة واحد من البرنامج إلى كثير من الحسابات

وفي الحالة التي ذكرتيها يمكننا جعل المفتاح الأجنبي الغير مستخدم بدون قيمة وسيكون بشكل إفتراضي بnull

في حالة أنك قمتِ بعمل جدولين سيصبح الأمر معقدًا بعض الشئ حيث ستحتاجين أن تقومي بعمل check constraint بأن الحساب غير موجود في الجدول الأخر, و لا يمكنك أن تقومي بمناداة الجدول الأخر في الcheck constraint إلا عبر الدوال المُعرفة من قِبل المُستخدم  user-defined-functions مما سيجعلك تضطرين أن تقومين بجهد زائد وسيزيد أيضًا من تعقيد هيلكية قاعدة البيانات

لذا من الأفضل عمل جدول واحد للربط وجعل قيمة المفتاح الأجنبي الغير مستخدم بnull 

اعتقد ان الفكرة ليست واضحة لك تماما

الامر انه لدي جدولين يشتركين في نفس العمود (لديه عدة قيم)

هل اقوم بعمل جدول واحد فقط يحوي مفتاحين اجنبيين لهذين الجدولين

او انشأ جدولا خاصا لكل منهما علما ان قيم الجدولين ليس بينهما علاقة

  • 0
نشر
بتاريخ 1 دقيقة مضت قال Asma Ameen:

اعتقد ان الفكرة ليست واضحة لك تماما

الامر انه لدي جدولين يشتركين في نفس العمود (لديه عدة قيم)

هل اقوم بعمل جدول واحد فقط يحوي مفتاحين اجنبيين لهذين الجدولين

او انشأ جدولا خاصا لكل منهما علما ان قيم الجدولين ليس بينهما علاقة

حسب ما فهمت أن لديكِ برامج ومؤسسات, لكلٍ منهما حسابات, ولكن حسابات البرامج  لا يمكن أن توجد في حسابات المؤسسات, أليس ذلك صحيحًا؟

  • 0
نشر
بتاريخ 9 دقائق مضت قال شرف الدين2:

حسب ما فهمت أن لديكِ برامج ومؤسسات, لكلٍ منهما حسابات, ولكن حسابات البرامج  لا يمكن أن توجد في حسابات المؤسسات, أليس ذلك صحيحًا؟

ليس شرطا

  • 0
نشر
بتاريخ 40 دقائق مضت قال Asma Ameen:

ليس شرطا

أها أعتذر لقد أسأت فهمكِ في البداية, في تلك الحالة من الأفضل عمل جدولين منفصلين أحدهما للعلاقة بين المؤسسة والحسابات والأخر بين البرنامج والحسابات, ولكن ستظل تلك علاقة واحد إلى كثير بما أن البرنامج يمكن أن يكون له أكثر من حساب ونفس الأمر بالنسبة إلى المؤسسة

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

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

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  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.

  • إعلانات

  • تابعنا على



×
×
  • أضف...