السلام عليكم يا معشر المبرمجين

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

اريد ايضاح بعض الافكار خصوصا للمتعلمين كي لا يغرق في بحر الاخطاء .

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

لنفرض مثلاً انك تملك جدولين مرتبطين معا وليكونا كما يلي :

ترويسه_الفاتورة :

رقم الفاتورة - قيمة الفاتورة - تاريخ الفاتورة

معلومات_الفاتورة :

رقم الفاتورة - المادة (المنتج) - الكمية

اي ان العلاقة فيما بينهما 1 - n

حيث ان ترويسة الفاتورة لها اكثر من صف في معلومات الفاتورة .

لنفرض جدلاً اننا نريد حذف فاتورة معينة ! ماذا كنت ستفعل ؟

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

حسنا لو كنا نملك 7 جداول مرتبطه ببعضها بنفس هذه الطريقة ؟ هل ستكتب 7 جمل للحذف؟

حسنا ربما هذا يجدي نفعا ولكنها ليست طريقه فعالة !

هل سمعت عن الزناد او (trigger) ؟ لما لا تستخدمه!؟

حسنا هذه النصيحة الاولى حاول استخدام الزناد في هذه الحالات.

هذه مقالة على ويكيبيديا https://en.wikipedia.org/wiki/Database_trigger


لا اريد الاطاله عليكم ولكن لما لا تستخدم الـ Join ؟ في الاستعلامات بدلا من التعقيد الذي تضع نفسك به ؟

ولنضرب مثالا هنا , لنفرض ان لديك جدولين مرتبطين معا وتريد احضار المعلومات منهما

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

وحتى في بعض الاحيان ربما جدول واحد نريد احضار المعلومات منه قد نحتاج جملتي استعلام يمكن اختصارها بجملة واجده عن طريق ال self join .


لا اريد الاطالة في هذه المساهمة والشرح وضرب الامثلة والتفريق بين انواع ال join وانواع ال trigger , هي نصيحتين يمكنك البحث عنهما في العم جوجل للمزيد من المعلومات عنهما وكيف ستسهل عليك الحياة .

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

واتمنى للجميع النجاح والتفوق , والسلام عليكم