我试图在MySQL数据库中建立一对一的关系。我使用InnoDB引擎和基础表看起来像这样:MySQL中的一对一关系
CREATE TABLE `foo` (
`fooID` INT(11) NOT NULL PRIMARY KEY AUTO_INCREMENT,
`name` TEXT NOT NULL
)
CREATE TABLE `bar` (
`barName` VARCHAR(100) NOT NULL,
`fooID` INT(11) NOT NULL PRIMARY KEY,
CONSTRAINT `contact` FOREIGN KEY (`fooID`) REFERENCES `foo`(`fooID`)
)
现在,一旦我已经设置了这些我改变foo表,以便fooID也成为在酒吧外键fooID。 我面临的唯一问题是,当我尝试插入任何一个时,会出现一个完整性问题。 我想要一些帮助,谢谢。
@ chris-shaffer不幸的是它必须是两个单独的表格。会不会有某种交易方式? 谢谢 – Botto 2010-03-11 23:23:18
@Botto:正如我写在另一个答案 - 在其他数据库中可以推迟约束。然而'轻'MySQL在文档中没有提及它。 – 2010-03-12 00:13:36
如果它必须是两个表,请选择哪个表代表实际实体,然后编写代码以处理其他表中的记录不存在的情况。我认为这是你能够做到的最好的。 – 2010-03-12 01:07:51