2012-09-22 2 views
1

처음으로 모의 데이터베이스를 만들고 있습니다. 필자는 다 대다 관계로 구성된 관계형 모델을 만들었습니다. 관계형 모델에는 별도의 연결/결합 테이블이 있습니다. 데이터베이스를 만들 때이 연결 테이블을 별도의 테이블로 만들어야합니까? 또는 각 외래 키를 여러 테이블에 넣을 수 있습니까?오라클 데이터베이스에서 연결/조인 테이블을 만드는 방법

별도의 테이블이 필요한 경우이 테이블을 구문을 통해 어떻게 연결합니까?

감사합니다.

+0

관계형 모델을 표시 할 수 있습니까? – hol

답변

2

외래 키는 일대 다 방식으로 만 작성할 수 있습니다. 이 교차 테이블이 필요합니다. 논리 데이터 모델을 실제 데이터 모델로 변환 할 때 우리가 도입하는 추가 구성 요소의 일종입니다.

교차 테이블에는 M : N 형식으로 링크하려는 두 테이블의 참조 키 (링크 속성을 보유 할 수있는 메타 데이터 열이있을 수 있음)가 종종 있습니다. 이중화를 피하기 위해 일반적으로 두 열에 복합 기본 키가 있습니다. 참조 된 각 테이블에는 참조 된 열에 기본 키가 정의되어 있어야하는 외래 키가 있습니다.

구문은 매우 분명합니다. 이 샘플은 두 개의 마스터 테이블과 키를 정의하는 교차점을 빌드합니다.

create table m1 (
    id number not null 
    , constraint m1_pk primary key (id)); 


create table m2 (
    id number not null 
    , constraint m2_pk primary key (id)); 


create table intersection_t (
    m1_id number not null 
    , m2_id number not null 
    , constraint int_pk primary key (m1_id, m2_id) 
    , constraint int_m1_fk foreign key (m1_id) 
     references m1 (id) 
    , constraint int_m2_fk foreign key (m2_id) 
     references m2 (id) 
);