我正在使用MySQL数据库。在我的关系数据模型中,我有两个实体相互关联1:1。在我的模式中,通过在两个表中的一个表中放置FK字段来建立1:1关系,该表与另一个表的PK相关。两个表都有PK,它们都是自动增量BIGINT。
我想知道是否可能对它们采取ON DELETE CASCADE
行为,这两种方式都有效。
即。 A 1:1 B表示[删除A也删除B]以及[删除B也删除A]。
我意识到这在正确的应用程序设计方面可能不是绝对必要的,但我只是想知道它是否真的可行。据我所知,你不能在PK上加上FK约束。
答案 0 :(得分:9)
如果您强制执行双向关系,则无法插入此类记录。鸡和蛋。无法插入表#1中的记录,因为表#2中没有匹配的记录,并且表#2无法插入,因为表#1中没有任何内容可以挂钩。
您可以暂时禁用FK约束(set foreign_key_checks = 0
),但这绝不应该在“真实”系统中完成。它更适用于无法保证表加载顺序的加载转储。