mysql - 我应该如何在相同的两个模型之间建立多个多对多关系?
问题描述
如果我有Book
andAuthor
和 之间的关系可以作为MainAuthor
and存在AssistantAuthor
。MainAuthor
和可能有多个实例AssistantAuthor
。在制作两个单独的连接表或在连接表中添加一个表示它是MainAuthor
或的关系的字段之间有什么权衡AssistantAuthor
?
解决方案
这取决于您认为未来的商业模式会发生多大的变化。
两个独立关系的好处是它看起来更干净、更简单。如果您想要主要作者,则使用一种关系;如果您想要助手,请使用其他助手。另一个好处是采用这种解决方案更便宜。
与“类型”字段建立单一关系的好处是随着时间的推移具有灵活性。如果下个月您想添加第三种或第四种作者怎么办?例如:法律顾问,还是合作者?相同的单一关系应该能够轻松容纳更多类型。
底线:如果您认为关系稳定且不会改变,请选择第一个;如果你更喜欢增加灵活性,你可以采用第二个稍微贵一点的。
推荐阅读
- postman - 在邮递员跑步者中循环我的数据文件,我可以安排跑步者本身的个人请求吗?
- python - discord.py - 将字符串转换为成员,然后将成员移动到特定频道
- generics - 由于泛型类型参数,无法将特征制成对象
- java - Filewriter 不会将所有数字写入我的文件
- javascript - 如何在 Angular ngFor 循环中将表格行移动到顶部?
- typescript - 从枚举中获取第一个枚举项
- mysql - 如何使用 sql 按列值排序?
- javascript - 我基本上如何将 PHP 数组传递给 JS 数组 - Laravel 5?
- html - 如何使用 CSS 将项目全部固定在每个位置?
- node.js - Nodejs:有限的并行执行在处理结束时挂起