【发布时间】:2013-09-18 14:54:58
【问题描述】:
我正在建立一个教科书数据库。 Book 看起来像这样:
图书
- 身份证
- 标题
- isbn
- 作者
- 主题
- 类
- 大学
- 教授
虽然一本书(显然)只有一个标题或 ISBN - 我希望作者、学科、大学和教授成为一种“标签”。一本书可以由多个作者撰写,用于多个教授教授的多个课程中的多个科目。所以我想为每一个建立一个多对多的关系。例如Author 可能类似于:
作者
- 身份证
- 姓名
- 书籍
对于我来说,书属于作者并不一定有意义,反之亦然(尽管我可能是错的。)但我也不知道创建 book_author_associations 表,book_jubjects_associations 模型,book_classes_associations 模型等。
像这样创建多个多对多的最佳方法是什么?
【问题讨论】:
-
如果您不想创建连接模型,您可以使用
has_and_belongs_to_many类型的关联。它们只在您的数据库中获取一个连接表,但没有额外的 ActiveRecord 模型。更多信息:guides.rubyonrails.org/association_basics.html -
多态关联?像 BookAssociations 这样的模型引用 book_id、related_object_id 和 associated_object_type?
标签: ruby-on-rails