سؤال

لقد وجدت بعض الأسئلة على ذلك حول جمعيات القضبان التي تشبه إلى حد ما سؤالي ، لكن من أجل حياتي لا أستطيع أن أفهم كيفية استخدامها belongs_to نماذج متعددة.

ها هي هيكل الجدول أنوي الحصول على:

User
 id

Post
 id
 user_id #foreign key; a post belongs to a User aka "Who created this post"

Comment
 id
 user_id #foreign key; a comment belongs to a User aka "Who made this comment"
 post_id #foreign key; a comment belongs to a Post aka "What post this comment is for"

و ال ذات الصلة:

User
 has_many :posts
 has_many :comments

Post
 belongs_to :user
 has_many :comments

Comment
 belongs_to :user
 belongs_to :post

هل هذا هو النهج الصحيح؟

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

المحلول

نعم هذا هو النهج الصحيح.

نصائح أخرى

على الرغم من أنه ليس دائمًا النهج "الأفضل" ، فإن Rails تقدم ما يسمى تعدد الأشكال ينتمي إلى الجمعية. يمنعك من تحديد مفتاح خارجي في قاعدة البيانات لأن العمود XXX_ID يشير إلى معرف في أحد الجداول العديدة الممكنة بينما يعين عمود آخر اسم نموذج هذا الجدول ، لكنه يجعل العلاقة أكثر وضوحًا في القضبان. أيضًا ، يقيد النموذج للانتماء فقط إلى أحد النماذج الأخرى ، بدلاً من الانتماء إلى واحد أو أكثر ، لأنه سيحدث باستخدام إعداد مفاتيح أجنبية متعددة دون بعض سحر DB إضافي.

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