想象一下,我有两张桌子,他们有一对多的关系。有一个存储关系的Join表,或者在其中一个表中发出外键是否更好?看看这两种情况:
Situation A:
Table 1: CreditCard
Table 2: Person
将creditCard_id作为Person表的一部分
似乎很有意义Situation B:
Table 1: Order
Table 2: Person
这次我想我会将order_id和person_id放在Join表中?
我在上面犯了错误吗?有没有标准/更好的方法来确定这个?
答案 0 :(得分:1)
对于1对多的关系,人们通常把外键放在较重的桌子上或者#34;很多"表。 因此,从您的示例中,都可以使用CreditCard和Order表,这样您就可以删除重复的数据。
想象一下哪个更好:
FK前往"很多"表
表人:
ID NAME
1 A
2 B
表信用卡:
ID PEOPLE_ID
1 1
2 1
FK进入" 1"表:
表人:
ID NAME CreditCard_ID
1 A 1
1 A 2
2 B 3
表信用卡:
ID
1
2
3
注意:在第二个示例中查看ID和名称的重复方式(ID = 1,NAME = A),如果将FK放在错误的表格中,就会发生这种情况。
答案 1 :(得分:0)