gpt4 book ai didi

mysql 两个FK在同一个表中

转载 作者:行者123 更新时间:2023-11-29 12:22:40 24 4
gpt4 key购买 nike

我有三个表:A、B、C。表 C 有两个 FK,分别指向 A id 和 B id。

当我尝试在 C 中插入某些内容时,如果我用有效的 ID 填充指向 A 的 FK 列,并让 B 表的 FK 为空或 null 或零,MYSQL 会抛出错误,指出我还有另一个 FK填写。

解决这个问题的最佳方案是什么?

我想有两个C表,一个用于A,另一个用于B:C_A,C_B,每个表中只有一个FK就可以了。

我必须考虑到我也在使用 Hibernate JPA,并且我的解决方案可以正常工作。但这意味着需要多一张具有相同角色的表。

您对这个问题有何看法?

最佳答案

在阅读 Neil Stockton 给我的推荐后,我注意到在那些 FK 列上我设置了默认值“0”。这就是为什么即使我为其中一个 FK 输入了 NULL,它也会抛出错误。

CREATE TABLE `C` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`A_id` int(11) DEFAULT '0',
`B_id` int(11) DEFAULT '0',
...
)

解决方案

CREATE TABLE `C` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`A_id` int(11),
`B_id` int(11),
...
)

关于mysql 两个FK在同一个表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28791155/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com