2011-02-22 1 views
0

polytree과 같은 개념적 온톨로지를 모델링합니다. 사용모델링 트리 또는 그래프 SQL : 노드 및 노드 정보의 속성을 분리하는 방법

edge list model은 다음과 같습니다

CREATE TABLE nodes(
    nodeID CHAR(1) PRIMARY KEY 
); 

CREATE TABLE edges(
    childID CHAR(1) NOT NULL, 
    parentID CHAR(1) NOT NULL, 
    PRIMARY KEY(childID,parentID) 
); 

내 문제는 노드가 "유형"과 같은 다른 특성을 가질 수 있도록 내가 SQL에서 모델링 할 수있는 방법입니다. 예 :

(father-node) **Music** 

(child-node) **jazz** [type: genre], **soul** [type: genre] 
(child-node) **concert** [type: performed], **DJ set** [type: performed] 
+0

에 장르 ID를 추가, XML 또는 데이터 샘플, ** 텍스트 편집기에서 해당 행을 강조 표시하고 "코드 샘플"버튼 ('{}) '을 클릭하십시오. 편집기 툴바에서 멋지게 포맷하고 구문을 강조 표시하십시오! –

+0

고마워, 난 stackoverflow에 새로운이야! 이제 괜찮 니? – Daniele

답변

0

당신은 Celkos 설정 중첩되어 모델을 확인해야이 http://mikehillyer.com/articles/managing-hierarchical-data-in-mysql/

하지만 당신은 코드를 게시 할 경우 어쨌든 당신의 노드 테이블

CREATE TABLE nodes(
    nodeID CHAR(1) PRIMARY KEY 
    genre_id 
); 
+0

polytree (하나의 노드가 둘 이상의 아버지를 가질 수 있음)가 필요하기 때문에 Celkos 모델에 어려움을 겪고 있습니다. – Daniele

+0

OK, celko는 작동하지 않지만 노드 테이블에 genre_id를 추가해야합니다. 장르는 부모 - 자식 관계에 의존합니다. 즉 노드는 부모 A의 자식 인 경우 genreA이지만 부모 B의 자식 인 경우 genreB입니다. 그러면 genre_id가 가장자리 테이블에 있어야합니다. – macarthy

+0

은 noSQL db를 사용하여 종료되었습니다! – Daniele