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

النمودج العلائقي جيد و لكن ..المستخدم لا يعرف انه علائقي .

بدأه حسام الشامي في 24 سبتمبر 2008 · 2 رد · 990 مشاهدة · في قواعد بيانات Microsoft SQL Server
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

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

لنأخذ المثال التالي :post-94677-1222269239_thumb.gif

جدول يحوي أسماء الموظفين.. وتم تعرف المهن في جدول منفصل مما يسهل الاستعلامات عن الموظفين الذين لهم نفس المهنة مثلا ...

الآن افرض أنه في قاعدة البيانات لدينا ما يلي :

IDJob_Name

IDEmp_NameJob_ID

يعني انه لدينا موظف اسمه ماهر و مهنته مدرس.

الآن أفرض أن المستخدم قام بمايلي :

  • تعديل المهنة teacher إلى .Doctor
  • اضافة مهنة جديدة هي teacher و ذلك كنوع من ترتيب لائحة المهن .
أي أن جدول المهن أصبح بعد التعديل كالتالي :

IDEmp_Name

بالنسبة للمستخدم أنه فقط قام بإضافة مهنة جديدة و هي Doctor في بداية الجدول ...

و أنه عندما تم إدخال بيانات الموظف ماهر تم تحديد مهنته أنه مدرس ..

و لكن ...هل عرفتم مالذي حصل ....؟ -_- ؟نعم ... اصبحت مهنة ماهر هي "طبيب" بسبب أن الـــ Job_ID = 1 و هو يقابل المهنة "طبيب" ..

سؤالي ما هو أفضل سيناريو لمنع حصول مثل هذه الأمور ... هل نمنع المستخدم من تعديل جدول المهن .. اعتقد أن هذا سوف يؤدي إلى نظام غير مرن بالنسبة للمستخدم ...فماذا لو تم إدخال المهنة بشكل خاطئ .. نحن بحاجة للتعديل .. أم بعد عملية التعديل نظهر رسالة للمستخدم كالتالي "جميع الموظفين الذين لهم مهنة مدرس سيتم تحويلهم إلى مهنة طبيب ؟ blink.gif

اعتقد ان مثل هذه الرسائل سوف تجعل المستخدم يصاب بالجنون ...

اترككم برعاية الله.

لا إله إلا الله ... محمد رسول الله

لو كانت مشاركتي مفيدة و تريد تشجيعي على المزيد من العطاء , فضلا قم بتقييم المشاركة

المعرًف القديم : houssam11350_11350

من مواضيعي : ArabGenCode : مولد كود و إجراءات مخزنة و واجهات لجداول سيكوال سيرفر

#2
اقتباس
بالنسبة للمستخدم أنه فقط قام بإضافة مهنة جديدة و هي Doctor في بداية الجدول ...

الاضافة تكون ب ID جديد و ليس تعديل سجل موجود من قبل

و الحل استخدام ID للربط بين الجداول لا يستطيع المستخدم تغيره اي تكون وظيفته فقط الربط internal using

و اجعل العلاقة بين الجداول Cascade on update

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

في المثال الذي ذكرته في مشاركتك

#3

شكرا أخي الكريم على مرورك

اقتباس
و الحل استخدام ID للربط بين الجداول لا يستطيع المستخدم تغيره

أنا في المثال استخدمت ID للربط , و لكن المستخدم قام بتعديل اسم المهنة ..

اقتباس
Cascade on update

تعمل فقط لو تم تعديل حقل المفتاح الرئيسي . عندها يتم تعديل حقل المفتاح الثانوي المرتبط به .

اقتباس
ما قمت به لا يحدث عن جملة اضافة فقط بل جملتين اضافة و تعديل

هذا صحيح ..

لا إله إلا الله ... محمد رسول الله

لو كانت مشاركتي مفيدة و تريد تشجيعي على المزيد من العطاء , فضلا قم بتقييم المشاركة

المعرًف القديم : houssam11350_11350

من مواضيعي : ArabGenCode : مولد كود و إجراءات مخزنة و واجهات لجداول سيكوال سيرفر

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

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…