Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Database 是否从不是主键的属性创建外键?_Database_Foreign Keys_Primary Key_Foreign Key Relationship_Rdbms - Fatal编程技术网

Database 是否从不是主键的属性创建外键?

Database 是否从不是主键的属性创建外键?,database,foreign-keys,primary-key,foreign-key-relationship,rdbms,Database,Foreign Keys,Primary Key,Foreign Key Relationship,Rdbms,是否可以在一个表中创建一个外键-FK,该外键将引用另一个表中的正常atribute(非主键-PK)?如果您在以下位置工作: 是的,你可以。但是仅当FK目的地字段的值唯一时 从FK指向的列必须具有唯一值以确保安全 一种确保这一点的方法是在其上定义一个定义 编辑以澄清: 表A有一个FK列,指向表B,列名为B\u anycolumn 实际上不需要从表B的PK中删除任何列,但它必须具有唯一的约束,以确保其中的所有值都不同 尽管这是可能的,但表之间的正常关系是PK列,因为它们在定义上总是唯一的。是。外键约

是否可以在一个表中创建一个外键-FK,该外键将引用另一个表中的正常atribute(非主键-PK)?

如果您在以下位置工作:

是的,你可以。但是仅当FK目的地字段的值唯一时

从FK指向的列必须具有唯一值以确保安全

一种确保这一点的方法是在其上定义一个定义

编辑以澄清:

表A
有一个FK列,指向
表B
,列名为
B\u anycolumn

实际上不需要从表B的PK中删除任何列,但它必须具有唯一的约束,以确保其中的所有值都不同


尽管这是可能的,但表之间的正常关系是PK列,因为它们在定义上总是唯一的。

是。外键约束不必仅链接到另一个表中的主键约束;还可以将其定义为引用另一个表中唯一约束的列

请参阅:


好的,如果我理解的话,我想提到的正常心房不能有重复的值。是吗?谢谢你的回复!