从非主键的属性创建外键?

时间:2017-05-03 09:03:49

标签: database foreign-keys primary-key foreign-key-relationship rdbms

是否可以在一个表中创建一个外键--FK,它将引用另一个表中的普通属性(不是主键 - PK)?

2 个答案:

答案 0 :(得分:0)

如果您的工作是RDBMS

是的,你可以。但是,如果FK目标字段的值是唯一的,则

从FK 必须指向的列具有唯一值,以确保database referential integrity安全。

确保这样做的方法是在其上定义Unique Constraint

编辑澄清:

Table A有一个指向table B的FK列,名为B_anycolumn的列。

B_anycolumn实际上不需要table B成为PK,但它必须具有唯一约束才能确保其中的所有值都不同。

即使这是可能的,表之间的正常关系也是PK列,因为根据定义它们总是唯一的。

答案 1 :(得分:0)

是。 FOREIGN KEY约束不必仅链接到另一个表中的PRIMARY KEY约束;它也可以定义为引用另一个表中UNIQUE约束的列。

参考:

Foreign Key to non-primary key