我有三个表:A,B,C。表C有两个指向A id和B id的FK。
当我尝试在C中插入一些内容时,如果我填充指向A的FK列并使用有效ID并让B表的FK为空或为零或零,则MYSQL抛出错误并说我有另一个FK到继续进行。
这个问题的最佳解决方案是什么?
我在想,有两个C表可以,一个用于A,另一个用于B:C_A,C_B,每个只有一个FK。
我必须考虑我也使用Hibernate JPA,我的解决方案也能正常工作。但这意味着一个额外的表具有相同的角色。
您对此问题有何看法?
答案 0 :(得分:1)
在我读到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),
...
)