我目前正在处理一个有两个表的应用程序。用户和团队。用户的用户名是pk和userpassword。
team表的teamid为pk,teamname为。
最初我只有一个表,其中有userid、userpassword和teamid,但有人告诉我,当前的设计没有规范化。因此,我不得不将表分成user、team和一个名为user_team的联接表,其中包含userid作为用户表中的pk,teamid作为团队表中的pk。
约束条件
一个用户只能在一个团队中,一个团队可以有多个用户。
所以根据我的理解,这是一个从团队到用户的一个整体。
我已经将userid和teamid作为一个组合键放在一起,并且还使其在jointable(user_team)中是唯一的,因此1个用户不能在多个团队中。
我的疑问是有必要将表单独分解为team表。我不能把三个字段都放在一张表里。有人能解释一下这是怎么不正常的吗?如果在这种情况下需要jointable,也请告诉我。

最佳答案

不,你不需要一个一夫一妻关系的jointable。只要在用户表上有一个teamId字段,就可以了。
根据经验:
只有一张桌子
一个女人:两张桌子,“多”的一边有一个外键。
manytomany:有一个jointable

关于sql - 我们是否应该将单向的一对多关系分解为JoinTable,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/55062351/

10-12 21:17