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

다대다 관계 모델


"제품 판매" 데이터베이스에서 고객의 주문에는 하나 이상의 제품이 포함될 수 있습니다. 제품은 많은 주문에 나타날 수 있습니다. "서점" 데이터베이스에서 책은 한 명 이상의 저자가 작성합니다. 저자는 0개 이상의 책을 쓸 수 있습니다. 이러한 종류의 관계를 다대다 관계라고 합니다.

"제품 판매" 데이터베이스를 사용하여 설명하겠습니다. 제품 및 주문이라는 두 개의 테이블로 시작합니다. 제품 테이블에는 productID가 기본 키로 사용되는 제품에 대한 정보(예:이름, 설명 및 수량 InStock)가 포함됩니다. 테이블 주문에는 고객의 주문(customerID, dateOrdered, dateRequired 및 상태)이 포함됩니다. 다시 말하지만, 항목에 대해 예약할 열의 수를 모르기 때문에 Orders 테이블 안에 주문한 항목을 저장할 수 없습니다. 또한 제품 테이블에 주문 정보를 저장할 수 없습니다.

다대다 관계를 지원하려면 각 행이 특정 주문의 항목을 나타내는 OrderDetails(또는 OrderLines)와 같은 세 번째 테이블(접합 테이블이라고 함)을 만들어야 합니다. OrderDetails 테이블의 경우 기본 키는 각 행을 고유하게 식별하는 orderID 및 productID의 두 열로 구성됩니다. OrderDetails 테이블의 orderID 및 productID 열은 Orders 및 Products 테이블을 참조하는 데 사용되므로 OrderDetails 테이블의 외래 키이기도 합니다.

다대다 관계 모델

다대다 관계는 실제로 접합 테이블의 도입으로 두 개의 일대다 관계로 구현됩니다.

주문의 OrderDetails에는 많은 항목이 있습니다. OrderDetails 항목은 하나의 특정 주문에 속합니다.

제품은 많은 OrderDetails에 나타날 수 있습니다. 각 OrderDetails 항목은 하나의 제품을 지정했습니다.