如果桌子有独特的FK,那么它应该有PK吗?

时间:2013-11-03 14:33:22

标签: sql sql-server foreign-keys primary-key

我有这个案子:

enter image description here

UserSettings实际上不是一个联结表,因为它只有一个FK,它将是唯一的,一个用户UserSettings。即使UserSettings是唯一的FK,还是不必要,UserId UserId是否会将{{1}}标记为主键?

3 个答案:

答案 0 :(得分:2)

UserSettings理想情况下不应该存在。从逻辑上讲,所有这些都是一个表。

如果您希望保留一个单独的表(可能对性能或体系结构有用),您应该使用相同的主键。换句话说,UserSettings应该使用FK作为PK。这有利于性能,存储空间和简单性。

答案 1 :(得分:2)

如果您想确保“这将是唯一的”要求,那么您需要将UserID定义为UNIQUE或主键约束。

答案 2 :(得分:2)

除了少数例外,每个表都应该有一个主键。所以,是的,即使它也是外键,我也会把它作为主键。