2014-12-04 2 views
0

기사가 들어있는 데이터베이스를 만들고 싶었지만 각 기사는 관련 기사를 참조 할 수 있습니다. 그래서 나는 기사에서 다른 기사까지 N : M 관계를 가지고 있습니다. 이제는 구현 방법을 모르겠습니다.테이블을 만드는 SQL에서 자체 관계

Related_articles을 :

Article_number_1 (정수), Article_number_2 (정수)

기본 키 : {article_number_1, article_number_2}

외래 키 : article_number_1 (참조 : 기사) 이것은 내가 원하는 것입니다 , article_number_2 (참조 : article)

하지만 article_number_1과 article_number_2가 모두 article 테이블의 article_number를 참조하도록 지정하려면 어떻게해야합니까? 이제

create table related_articles (
    article_number_1 integer, 
    article_number_2 integer, 
    primary key(article_number_1, article_number_2), 
    foreign key(article_number_1) references article, 
    foreign key(article_number_1) references article, 
) 

내가 외부 키의 두 라인이 잘못 알고 있지만, 나는 두 개의 속성이 테이블 문서의 같은 속성을 가리 나의 데이터베이스에 이야기하는 방법을 모른다 : 이것은 내가 무슨 생각입니다 . 도움을 줄 수있는 사람은 누구입니까?

+0

FK 정의를 열 정의의 일부로 만 만들 수있는 경우 열 이름을 생략 할 수 있습니다. 'article_number1 integer references article, ...' –

답변

1

references 이후에는 table_name(column_name)이라는 전체 참조가 필요합니다.

create table related_articles (
    article_number_1 integer, 
    article_number_2 integer, 
    primary key(article_number_1, article_number_2), 
    foreign key(article_number_1) references article(article_number), 
    foreign key(article_number_2) references article(article_number), 
) 

article_number 경우 테이블 article의 식별자입니다 : 귀하의 예제에서는 뭔가처럼 될 것입니다.

+0

Ok, 고마워요 :) –

+0

나는 또한 두 번째를 추측합니다. FK가 article_number_2에 있어야합니까? – gmiley

+0

@gmiley 물론! 수정 됨 ... –

관련 문제