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

Create a Foreign Key from an attribute that is not Primary Key?

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

如果您在RDBMS工作:

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

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

确保如此的一种方法是在其上定义 Unique Constraint

编辑澄清:

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

实际上没有必要 B_anycolumntable B 进行 PK,但它必须具有唯一约束以确保其中的所有值都不同。

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

是的。 FOREIGN KEY 约束不必仅链接到另一个 table 中的 PRIMARY KEY 约束;它也可以定义为在另一个 table.

中引用 UNIQUE 约束的列

参考这个:

Foreign Key to non-primary key