MyMisPal
المرحلة 3 · تصميم قواعد البيانات

استوديو ERD

ارسم مخطط الكيانات والعلاقات بنفسك: اسحب الجداول، اربطها بعلاقات Crow's Foot، والاستوديو يضيف المفاتيح الأجنبية ويكتب لك كود SQL جاهز لـ MySQL. وبعدها تشغّله بضغطة في ساحة SQL.

employs · 1:N departmentsPKdept_idINTnameVARCHAR(100) employeesPKemp_idINTfull_nameVARCHAR(100)FKdept_idINT
كيف تقرأ العلاقة؟ اقرأها من الجهتين: كل قسم فيه صفر أو أكثر من الموظفين، وكل موظف تابع لقسم واحد فقط. والمفتاح الأجنبي dept_id يكون دايماً في جهة الكثير.

مكونات المخطط

الكيانEntity

شي نبي نحفظ عنه بيانات: طالب، منتج، طلب. يتحول لجدول في قاعدة البيانات.

الصفةAttribute

معلومة عن الكيان: الاسم، السعر، التاريخ. تتحول لعمود.

المفتاح الأساسيPK

صفة قيمتها ما تتكرر وتميّز كل صف، مثل student_id.

المفتاح الأجنبيFK

عمود يشير لمفتاح أساسي في جدول ثاني، وهو اللي يجسّد العلاقة.

العلاقةRelationship

الرابط بين كيانين، ومعها العدد: واحد لواحد، واحد لكثير، كثير لكثير.

رموز Crow's Foot

كل طرف في العلاقة عليه رمزين: الأقرب للخط يقول «كم على الأكثر»، والأبعد يقول «كم على الأقل». والرمز القريب من الكيان يتكلم عن عدد سجلات هذا الكيان.

واحد فقط

لازم يكون فيه واحد، وما يزيد عن واحد.

صفر أو واحد

اختياري: ممكن ما يكون فيه، وإذا فيه فواحد بس.

واحد أو أكثر

لازم يكون فيه واحد على الأقل، وممكن كثير.

صفر أو أكثر

اختياري، وممكن يكون كثير.

من وصف النظام إلى مخطط: 5 خطوات

  1. 1
    استخرج الأسماء

    اقرأ وصف النظام وحط خط تحت الأسماء المهمة (طالب، مادة، أستاذ). أغلبها بيصير كيانات.

  2. 2
    حدد الصفات

    لكل كيان اكتب المعلومات اللي تحتاجها. خلّ كل صفة بسيطة: قيمة وحدة في كل خانة.

  3. 3
    اختر المفتاح الأساسي

    كل كيان يحتاج مفتاح أساسي. الأسهل غالباً رقم تعريفي مثل student_id.

  4. 4
    ارسم العلاقات وحدد العدد

    الأفعال في الوصف تدلك على العلاقات (يسجّل، يدرّس). اسأل من الجهتين: كم طالب في المادة؟ وكم مادة للطالب؟

  5. 5
    حل كثير لكثير وراجع التطبيع

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

أخطاء شائعة

  • كيان بدون مفتاح أساسي.
  • تخزين أكثر من قيمة في خانة وحدة، مثل «الهواتف: 050، 055».
  • وضع المفتاح الأجنبي في جهة «الواحد» بدل جهة «الكثير».
  • ترك علاقة كثير لكثير بدون جدول وسيط عند التنفيذ.
  • حفظ قيمة محسوبة مثل «العمر» بدل تاريخ الميلاد.

تحديات بتصحيح تلقائي

اقرأ القصة، وارسم المخطط في الاستوديو، واضغط «تحقّق». الاستوديو يراجع الكيانات والمفاتيح والعلاقات ويقول لك وش ناقص.

مبتدئ

عيادة ومواعيد

عيادة فيها أطباء ومرضى. كل موعد يكون لمريض واحد عند طبيب واحد. المريض ممكن يحجز مواعيد كثيرة، والطبيب عنده مواعيد كثيرة. احفظ تاريخ ووقت كل موعد في عمود اسمه appointment_time.

متوسط

تسجيل المواد والدرجات

الطالب يسجّل في مواد كثيرة، والمادة يسجّل فيها طلاب كثير. ونبي نحفظ درجة الطالب grade في كل مادة سجّلها. فكّر: وين مكان عمود الدرجة؟ (تلميح: الدرجة صفة للتسجيل نفسه، مو للطالب ولا للمادة).

متقدم

الأقسام ومدراؤها

كل موظف يتبع قسم واحد، والقسم فيه موظفين كثير. وفوق كذا، كل قسم يديره موظف واحد فقط، والموظف يدير قسم واحد على الأكثر. يعني بين الجدولين علاقتين مختلفتين!

قوالب جاهزة

أمثلة كاملة تفتحها في الاستوديو، تعدّل عليها، وتشوف كود SQL حقها.

نظام تسجيل جامعي

أقسام، أساتذة، طلاب، مواد، وجدول تسجيل وسيط فيه الدرجة.

متجر إلكتروني

عملاء، طلبات، منتجات وتصنيفات، وعلاقة واحد لواحد بين الطلب والدفع.

مستشفى

أقسام، أطباء، مرضى، مواعيد، ووصفات طبية.

مكتبة

كتب ومؤلفين بعلاقة كثير لكثير، وأعضاء يستعيرون الكتب.

شركة دروس SQL

نفس قاعدة البيانات اللي تدربت عليها في دروس SQL، مع علاقة ذاتية للمدير.

لقيت خطأ في هذي الصفحة، أو عندك فكرة تحسّن الموقع؟