Mysql 我应该如何在相同的两个模型之间建立多对多关系?
如果我有Mysql 我应该如何在相同的两个模型之间建立多对多关系?,mysql,ruby-on-rails,database,Mysql,Ruby On Rails,Database,如果我有Book和Author,那么两者之间的关系可以存在为main Author和AssistantAuthor。可能有多个main作者和AssistantAuthor的实例。制作两个单独的联接表,或者在联接表中添加一个表示关系的字段(取决于它是main author还是AssistantAuthor)之间的权衡是什么?这取决于您认为业务模式在未来会发生多大的变化 两种独立关系的好处是看起来更干净、更简单。如果您想要主要作者,请使用一种关系;如果你想要这些助手,你可以用另一个。另一个好处是采用
Book
和Author
,那么两者之间的关系可以存在为main Author
和AssistantAuthor
。可能有多个main作者
和AssistantAuthor
的实例。制作两个单独的联接表,或者在联接表中添加一个表示关系的字段(取决于它是main author
还是AssistantAuthor
)之间的权衡是什么?这取决于您认为业务模式在未来会发生多大的变化
两种独立关系的好处是看起来更干净、更简单。如果您想要主要作者,请使用一种关系;如果你想要这些助手,你可以用另一个。另一个好处是采用这种解决方案更便宜
使用“类型”字段的单一关系的好处是随时间变化的灵活性。如果下个月您想添加第三种或第四种作者,会发生什么?例如:法律顾问,还是合作者?相同的单一关系应该能够轻松容纳更多类型
一句话:如果你认为这段关系是稳定的,不会改变,那就选择第一段;如果你更喜欢增加灵活性,你可以采用第二个稍微贵一点的