我想知道将我的用户及其组存储在 3 个表与 2 个表中的优缺点。
2张桌子的优点
- 这些组很容易只是用户本身,并且在大多数情况下似乎与用户共享所有相同的字段,即姓名、图片、密码、电子邮件。
3张桌子的优点
- 拥有第三
groups
张表会更明确,因此开发人员可能更容易理解/维护。
3 个表的缺点 1. 通过不执行上面“2 个表的优点”中的 #1 来违反应用程序代码中的 DRY 原则。
我还应该考虑什么?
2 个强制表是一个users
表和一个group_member
表。
+---------+ +------------+
| users | | group_member | +----------+
+---------+ +------------+ | groups |
| user_id |----->| user_id | +----------+
| name | | group_id |<----| group_id |
| pass | +------------+ | name |
| ... | | ... |
+---------+ +----------+
**theoretical 3rd table**
注意:表中的 the和user_id
the都指的是表中的group_id
group_member
user_id
users