是否可以在一个表中创建一个外键--FK,它将引用另一个表中的普通属性(不是主键 - PK)?
答案 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约束的列。
参考: