2015-11-05 72 views
-1

如果我使关系A中的某个属性引用另一个关系B的外键,那么A中的属性必须是A的主键(或部分A)主键?关于外键的说明,SQL

另外,我的理解是,为了引用一个属性,被引用的属性必须是一个键或唯一的。那么我是否正确地断言我们不能引用主键的一部分(即,如果主键具有两个我们需要引用它们的属性或者两者都不需要,因为它们本身都不能保证属性是唯一的)?

回答

1

外键必须引用某种类型的唯一键,不管它是否是主键。您不能仅引用复合唯一键的一部分,除非它本身是唯一的键。

的参考场(一个或多个)可以是唯一的密钥(使关系的1:0..1关系,但不一定是一个

0

是的,你是对的在您的理解比方说。你存储关于狗在狗店洗涤的信息,你有两个表(tbl_dog,tbl_DogsWashed)。

tbl_Dog有列(DogId,DogsName,品种,OwnersIdentityNumber)

tbl_DogsWashed有列( DogsWashhedId,DogsName)

如果您使用狗的名字将两张桌子连接在一起,您可能会冒着这样一个事实,即两只同名的狗已经洗过。如果你想使用DogsName,Breed,OwnersIdentityNumber等来查找DogId,并用tbl_Dog中的主键填充tbl_DogsWashed表,那么可以使用tbl_Dog来查看DogId。