【发布时间】:2012-04-05 12:19:13
【问题描述】:
我正在尝试在 MySql 中创建四个表之间的关系:
mainnodes (ID)
subnodes (ID)
tagrelationship (NODEID & TAGID)
tag (ID)
“tagrelationship”表引用“mainnodes”,因此当我尝试插入时,我可以从“mainnodes”表中选择记录,但我也希望能够从“subnodes”表中进行选择。
我已经尝试像这样为“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;
这执行得很好,但我只能从“子节点”表中选择记录,不能同时选择两者。
我怎样才能做到这一点?
谢谢
【问题讨论】:
标签: mysql foreign-keys constraints indexing