我正在开发现有的 Postgres DB,我注意到 ER 图中的这两个 FK。拥有这两者有意义吗?他们似乎互相矛盾。这些 FK 中只有其中之一对我来说有意义,而不是两者都有意义。两者兼备有什么坏处吗?我很惊讶 Postgres 允许两者兼而有之。
ALTER TABLE table_x ADD CONSTRAINT fk_x_1
FOREIGN KEY (field_x) REFERENCES table_x(unid);
ALTER TABLE table_x ADD CONSTRAINT fk_x_2
FOREIGN KEY (field_x) REFERENCES table_x(unid) ON DELETE CASCADE;
您可以创建两个外键约束,但这没有任何意义。您是否希望删除级联到引用表。