임 MySQL의 네 개의 테이블 간의 관계를 만들려고 :만들기 관계
mainnodes (ID)
subnodes (ID)
tagrelationship (NODEID & TAGID)
tag (ID)
테이블 내가 삽입을 시도 할 때, 나는 'mainnodes에서 레코드를 선택할 수 있습니다'tagrelationship '참조'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;
이 잘 실행하지만 난뿐만 아니라 모두 '하위 노드'테이블에서 레코드를 선택할 수 있어요.
어떻게이 작업을 수행 할 수 있습니까?
감사
답장을 보내 주셔서 감사합니다. 노드 테이블에 인덱스를 추가하면 다음과 같은 경고 메시지가 나타납니다. 인덱스 PRIMARY와 NODE_ID가 같고 그 중 하나가 제거 될 수 있습니다. 여전히 괜찮습니까? – Robert
@ 로버트, 내 실수. 예, PRIMARY 인덱스 만 있으면됩니다. 내 대답이 업데이트되었습니다. –
문제 없습니다. 내 접근 방식이 이제는 어떤 방식 으로든 작동하지 않을지 확신 할 수 없습니다. 기본적으로 Umbraco 내에서 사용자 정의 컨텐츠 섹션을 설정하려고합니다. 당신이 경험이 있지만, 경우에 확실하지 에 다음과 같은 순서로 3 개 테이블에 레코드를 추가 나타나는 기본 노드/문서 생성 기본적 때 umbraconode cmscontent cmsdocument 가 그런 다음 'tagsrelationship'테이블이를 참조를 'umbraconode'테이블. umbraco 자습서에서는 사용자 지정 콘텐츠 노드에 대해 하나의 테이블을 만들었으며 위의 테이블을 전혀 참조하지 않았습니다. 날씨가 위의 3 개 테이블에 연결되어야하는지 확실하지 않습니다. – Robert