具有外键到不同表的复合主键

时间:2014-06-23 19:58:03

标签: sql sql-server tsql

SQL 2008 R2。我有三张桌子。

**Person**
PersonID int

**Address**
AddressId int
Address varchar

**PersonAddress**
PersonID int primary key references Person.PersonID
AddressID int primary key references Address.AddressID

我已经读过,当存在复合主键时,任何引用都应该包含这两列。然而,这对我有用。管理工作室不会抛出错误,我可以在没有任何重复的情况下向这些表插入行并遵守所有约束。

这是一个好习惯吗?

1 个答案:

答案 0 :(得分:1)

FK应该/必须引用引用的表的所有键列。 PersonAddress正在这样做两次。