كيف يتم ربط الاعضاء بالجداول

احمد • منذ سنة

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

 

انا تعلمت الاستخراج والادخال  من قاعدة البيانات 

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

 

مثال ؛ نفترض اني سويت صندوق اضافة موضوع كيف اربط الصندوق بحقول الادخال والجداول ب الاعضاء بحيث كل عضو يعرف موضوعه او يظهر موضوعه في ملفه الشخصي 

اتمنى وصلت الفكره 

كلمات دليلية: mysql php

ساعد بالإجابة

"إن في قضاء حوائج الناس لذة لا يَعرفها إلا من جربها، فافعل الخير مهما استصغرته فإنك لا تدري أي حسنة تدخلك الجنة."

الإجابات (2)

عمار الخوالدة • منذ سنة

تحتاج إلى علاقة OneTo Many بحيث يرتبط كل موضوع بعضو واحد، والعضو الواحد يرتبط بعدة مواضيع،
ويتم هذا بتخزين الـ Primary Key الخاص بالعضو في جدول المواضيع،


Image result for one to many relationship posts users

احمد: معليش ممكن تشرحها بشكل مفصل ف انا مبتدا . الربط يكون باستخدام اي دالة وب اي لغة وايش هو البرايمري كي وكيف اخزنه اتمنى تفصل شوي في الاجابه. وايش احتاج اتعلم عشان اتقنها

Ali Majrashi • منذ سنة
مميز

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

اجابة عمار جدا ممتازه وملخصه راح احاول اضيف عليها 

لربط الجداول ببعضها نستخدم مفهوم العلاقات relationship في قواعد البيانات بحيث انت ترغب بانشاء جدول للاعضاء وجدول للمواضيع وترغب ربطهم ببعض هنا نفكر ماهي علاقة جدول الاعضاء بجدول المواضع نقدر نبسطها بان كل عضو من الممكن ان يملك عدة مواضيع ومن هنا جت علاقة OneTo Many اي كل عضو يستطيع امتلاك العديد من المواضيع هنا نحتاج ان يكون جدول المواضيع يحتوي علي user_id بحيث نقوم بتخزين user id عند انشاء اي موضوع لمعرفة من يملك الموضوع 

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

  • One To One
  • One To Many
  • Many To Many

هذي ابسط ثلاث انواع ويوجد ايضا نوع يطلق عليه علاقات Polymorphic اذا تعلمت الانواع الثلاثه سهل عليك تعلم هذا النوع يعتبره بعض المبرمجين معقد احيانا ولكن اذا اتقنت الاسس سهل تعلم هذا 

راح احاول اشرح الانواع بشكل مبسط راح استخدم جدول الاعضاء لايصال المعلومة 

One To One

هذا النوع هو الابسط بحيث يعني بان العضو يملك سجل واحد فقط باي جدول آخر لنفرض ان لديك جدول خاص بالاعضاء وجدول خاص بمعلومات اضافية مثل صورة الملف رقم جوال وغيرها باستخدام هذه العلاقه نقول بان العضو A يملك فقط سجل واحد داخل جدول informations مثلا وهذا السجل يحتوي بقية معلومات هذا العضو 

في هذه العلاقه نحتاج الى user_id داخل جدول informations لمعرفة من يملك هذا السجل عند تخزينه وعند جلب البيانات من قاعدة البيانات نحد العدد بسجل واحد لارجاعه 

One To Many

سبق وشرحته بداية الرد 

علاقة جدول الاعضاء بجدول المواضع نقدر نبسطها بان كل عضو من الممكن ان يملك عدة مواضيع ومن هنا جت علاقة OneTo Many اي كل عضو يستطيع امتلاك العديد من المواضيع هنا نحتاج ان يكون جدول المواضيع يحتوي علي user_id بحيث نقوم بتخزين user id عند انشاء اي موضوع لمعرفة من يملك الموضوع 

ونستخدم هذه العلاقه عندما يكون لدينا سجل من الممكن ان يمتلك العديد من السجلات داخل جدول آخر نستخدم One To Many 

Many To Many

هذا اصعب نوع بحيث يكون عندك جدول مثل الاعضاء وجدول الصلاحيات بحيث ان العضو يمكن ان يمتلك مجموعة صلاحيات ولكن ايضا نفس هذه الصلاحيات من الممكن ان يمتلكها عضو آخر بحيث يصبح جدول الصلاحيات يمكن مشاركته بين العديد من الاعضاء وهذه العلاقة تتطلب ثلاث جداول مثل جدول خاص في users وجدول خاص roles وجدول يكون وسيط بينهم مثل role_user 

هذا شرح مبسط لهم ويوجد العديد من المقالات تشرح العلاقات وطرق عملها بصور واكواد هنا احدهم 

https://code.tutsplus.com/articles/sql-for-beginners-part-3-database-relationships--net-8561

فكل الي تحتاجه لدعم العلاقات لديك هي بناء الجداول بالطريقة الصحيه لكل علاقه ترغب باستخدامها ومن الممكن نفس الجدول يحتوي على عدة علاقات فهي تعتمد على مستوى تعقيد مشروعك 

وبعدها تقوم جلب البيانات ببناء SQL Query واستخدام JOIN لجلب البيانات بالشكل الصحيح بالمقال موضح امثله وتستطيع قراءة 

https://www.w3schools.com/sql/sql_join.asp

للمزيد من المعلومات حول استخدام JOIN 

لمعرفة طريقة تنفيذ هذه Query باستخدام php تستطيع الاستفادة من 

https://3alam.pro/ali-majrashi/series/mysql

 

لايوجد لديك حساب في عالم البرمجة؟

تحب تنضم لعالم البرمجة؟ وتنشئ عالمك الخاص، تنشر المقالات، الدورات، تشارك المبرمجين وتساعد الآخرين، اشترك الآن بخطوات يسيرة !