2
我試着在MySQL中創建四個表之間的關係:創建關係
mainnodes (ID)
subnodes (ID)
tagrelationship (NODEID & TAGID)
tag (ID)
表「tagrelationship」引用「mainnodes」所以,當我嘗試插入,我可以選擇從「mainnodes記錄'表,但是我希望能夠從'子節點'表中選擇。
我試圖像這樣建立的表結構爲「tagrelationship」:
CREATE TABLE IF NOT EXISTS `database`.`tagrelationship` (
`NODEID` INT(11) NOT NULL ,
`TAGID` INT(11) NOT NULL ,
PRIMARY KEY (`TAGID`, `NODEID`) ,
INDEX `TAGS_TAGRELATIONSHIP` (`TAGID` ASC) ,
INDEX `SUB_TAGRELATIONSHIP` (`NODEID` ASC) ,
CONSTRAINT `TAGS_AGRELATIONSHIP`
FOREIGN KEY (`TAGID`)
REFERENCES `database`.`tags` (`ID`)
ON DELETE CASCADE,
CONSTRAINT `MAINNODES_CMSTAGRELATIONSHIP`
FOREIGN KEY (`NODEID`)
REFERENCES `database`.`mainnodes` (`ID`)
ON DELETE CASCADE,
CONSTRAINT `SUBNODES_CMSTAGRELATIONSHIP`
FOREIGN KEY (`NODEID`)
REFERENCES `database`.`subnodes` (`ID`)
ON DELETE CASCADE)
ENGINE = InnoDB
DEFAULT CHARACTER SET = latin1;
此執行很好,但我只能夠從「子節點」表中選擇記錄不能同時使用。
我該如何做到這一點?
感謝
感謝您的回覆。將索引添加到節點表時,出現以下警告: 索引PRIMARY和NODE_ID似乎相同,其中一個索引可能會被刪除。 這還好嗎? – Robert 2012-03-21 01:03:07
@Robert,哎呀我的錯。是的,應該只有PRIMARY索引。更新了我的答案。 – 2012-03-21 01:09:27
沒問題。我不確定我的方法現在會以任何方式工作。基本上我試圖在Umbraco中設置一個自定義內容部分。 不知道,如果你有這方面的經驗,但基本上,當它創建它似乎增加了記錄,按以下順序3個表默認節點/ DOC: umbraconode cmscontent cmsdocument 那麼「tagsrelationship」表引用'umbraconode'表。 在umbraco教程中,他們爲自定義內容節點創建了一張表,他們根本沒有參考上述表格。 不確定的天氣表應該與上面3張表相關聯。 – Robert 2012-03-21 02:24:19