كيف تعرف كيفية تصميم قاعدة بيانات MySQL عند إنشاء تطبيق PHP متقدم؟

StackOverflow https://stackoverflow.com/questions/200257

  •  03-07-2019
  •  | 
  •  

سؤال

لم أقم مطلقًا بإنشاء عربة تسوق أو منتدى بلغة php.بصرف النظر عن عرض وتحليل مشروع شخص آخر أو مشاهدة البرامج التعليمية التي تعرض كيفية إنشاء مثل هذا المشروع أو كيفية القيام بهذا المشروع.كيف يمكن لأي شخص أن يعرف كيفية تصميم بنية قاعدة البيانات لإنشاء شيء من هذا القبيل؟أعتقد أنه ربما من خلال التجربة والخطأ ...

هل كانت مفيدة؟

المحلول

ويسمى هذا الأسلوب الرئيسية يمكنك معرفة المزيد عن تصميم قاعدة البيانات التسوية قاعدة .

قاعدة بيانات تطبيع له انها حدود، وخاصة إذا كان لديك العديد من المعاملات. في مرحلة ما قد تضطر إلى إلغاء تطبيع .

ولكن إيمهو أنه من الأفضل دائما أن تبدأ مع تصميم قاعدة بيانات تطبيع.

نصائح أخرى

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

فيما يلي مثال أساسي جدًا لتطبيع الجدول:

students
  student_id
  student_name
  student_class
  student_grade

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

students
  student_id
  student_name

class
  class_id
  class_name

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

grades
  student_id
  class_id
  grade

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

بعض الأشياء التي يمكننا استخلاصها من هذا المثال الأساسي للغاية:

  • ترتبط جميع بياناتنا بمفتاح من نوع ما (student_id وclass_id وstudent_id + class_id).هذه معرفات فريدة داخل كل جدول.
  • من خلال علاقاتنا الرئيسية، نحن قادرون على ربط المعلومات ببعضنا البعض (كم عدد الفصول الدراسية التي التحق بها الطالب رقم 4096؟)
  • يمكننا أن نرى أن جداولنا لن تحتوي على بيانات مكررة الآن (فكر في جدولنا الأول، حيث يمكن أن تكون قيمة Student_class هي نفس القيمة للعديد من الطلاب.إذا كان علينا تغيير اسم الفصل، فسيتعين علينا تحديث جميع السجلات.في تنسيقنا الطبيعي، يمكننا فقط تحديث class_name of class_id)

وأوصي أيضا باستخدام محرر البصرية لخلق مخطط قاعدة البيانات الخاصة بك. لقد تم مؤخرا باستخدام: http://dev.mysql.com/workbench/

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

وهكذا، تصميم، والحصول على ردود الفعل، ولكن لا تخافوا للتغيير.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top