Computer >> 컴퓨터 >  >> 프로그램 작성 >> SQL

일대다 관계 모델


"수업 명단" 데이터베이스에서 교사는 0개 이상의 수업을 가르칠 수 있지만 수업은 한 명의 교사가 가르칩니다. "회사" 데이터베이스에서 관리자는 0명 이상의 직원을 관리하는 반면 직원은 한 명의 관리자가 관리합니다. "제품 판매" 데이터베이스에서 고객은 많은 주문을 할 수 있습니다. 한 특정 고객이 주문하는 동안. 이러한 종류의 관계를 일대다 관계라고 합니다.

일대다 관계는 단일 테이블에 나타낼 수 없습니다. 예를 들어, "수업 명단" 데이터베이스에서 교사에 대한 정보(예:이름, 사무실, 전화 및 이메일)를 저장하는 Teacher라는 테이블로 시작할 수 있습니다. 각 교사가 가르친 수업을 저장하기 위해 class1, class2, class3 열을 만들 수 있지만 만들 열 수에 즉시 문제가 발생합니다. 반면에 수업에 대한 정보를 저장하는 Classes라는 테이블로 시작하는 경우 (이름, 사무실, 전화 및 이메일과 같은) 교사에 대한 정보를 저장하기 위해 추가 열을 생성할 수 있습니다. 그러나 교사는 많은 수업을 가르칠 수 있으므로 해당 데이터는 수업 테이블의 여러 행에 복제됩니다.

일대다 관계를 지원하려면 두 개의 테이블을 설계해야 합니다. 기본 키로 classID를 사용하여 클래스에 대한 정보를 저장하는 테이블 Classes; 및 교사 ID를 기본 키로 사용하여 교사에 대한 정보를 저장하는 교사 테이블. 그런 다음 테이블 클래스("다"-끝 또는 자식 테이블), 아래 그림과 같습니다.

일대다 관계 모델

하위 테이블 Classes의 teacherID 열을 외래 키라고 합니다. 하위 테이블의 외래 키는 상위 테이블을 참조하는 데 사용되는 상위 테이블의 기본 키입니다.