Я пытаюсь создать отношения между четырьмя таблицами в MySql:
mainnodes (ID)
subnodes (ID)
tagrelationship (NODEID & TAGID)
tag (ID)
Таблица «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;
Это выполняется нормально, но я могу выбирать записи только из таблицы «подузлов», а не из обоих.
Как я могу этого добиться?
Спасибо