8

我正在使用 MySQL 数据库。在我的关系数据模型中,我有两个彼此 1:1 相关的实体。在我的模式中,通过将 FK 字段放在两个表之一中来设置 1:1 关系,该字段与另一个表的 PK 相关。两个表都有 PK,它们都是自动增量 BIGINT。

我想知道是否有可能ON DELETE CASCADE对它们进行双向的行为。

即A 1:1 B,意味着[删除A也删除B]以及[删除B也删除A]。

我意识到,就正确的应用程序设计而言,这可能不是绝对必要的,但我只是想知道这是否真的可能。据我所知,您不能对 PK 施加 FK 约束。

4

1 回答 1

12

如果您强制执行 2-way 关系,则无法插入此类记录。鸡和蛋。表#1 中的记录不能插入,因为表#2 中没有匹配的记录,表#2 不能插入,因为表#1 中没有任何东西可以挂钩。

您可以暂时禁用 FK 约束 ( set foreign_key_checks = 0),但这绝不应该在“真实”系统中完成。它更多地用于加载无法保证表加载顺序的转储。

于 2013-02-12T17:15:52.760 回答