我試圖在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