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