방법
다대다 관계란?
다대다 관계는 가장 일반적으로 사용되는 테이블 관계입니다. 다대다 관계는 영업 담당자가 연락을 취한 고객이 누구인지, 고객이 어떤 제품을 주문했는지 등과 같은 중요한 정보를 제공합니다.
하나의 테이블에 포함된 하나 이상의 항목과 다른 테이블에 포함된 하나 이상의 항목 사이에 관계가 존재하는 경우 다대다 관계가 생깁니다. 예를 들면 다음과 같습니다.
-
주문 테이블에는 (고객 테이블에 나열된) 여러 고객이 발주한 주문이 포함되어 있으며, 하나의 고객은 둘 이상의 주문을 발주할 수 있습니다.
-
제품 테이블에는 회사에서 판매하는 개별 제품이 포함되어 있으며, 각 제품은 주문 테이블의 여러 주문에 포함됩니다.
-
하나의 주문에는 특정 제품 하나(또는 둘 이상) 및/또는 여러 제품이 하나씩(또는 둘 이상씩) 포함될 수 있습니다.
예를 들어, 신선희 고객이 발주한 주문 번호 1012에는 제품 12와 15가 하나씩, 그리고 제품 30이 다섯 개 포함될 수 있습니다.
다대다 관계 만들기
다대다 관계를 만드는 방법은 일대일 관계나 일대다 관계를 만드는 방법과 다릅니다. 일대일 관계와 일대다 관계는 관련 필드를 선으로 연결하여 만듭니다. 다대다 관계를 만들기 위해서는 나머지 두 개의 테이블을 연결할 새 테이블을 만들어야 합니다. 이 새 테이블을 중간 테이블(또는 연결 테이블/접합 테이블)이라고 합니다.
앞서 설명한 시나리오에서는 각 주문의 각 항목에 대해 주문 테이블의 ID와 제품 테이블의 ID를 포함하는 레코드가 담긴 주문 정보 테이블을 만들었습니다. 또한 두 테이블의 키를 결합하여 주문 정보 테이블의 기본 키를 만들었습니다.
이번 시나리오에서 신선희 고객의 주문 번호 1012에는 제품 12, 15, 30이 포함되어 있습니다. 따라서 주문 정보 항목은 다음과 같습니다.
주문 ID |
제품 ID |
---|---|
1012 |
12 |
1012 |
15 |
1012 |
30 |
신선희 고객은 제품 12와 15를 하나씩, 제품 30을 다섯 개 주문했습니다. 주문 ID와 제품 ID를 결합한 것이 기본 키인데, 기본 키는 반드시 고유해야 하므로 1012와 30이 포함된 다른 행을 추가할 수 없습니다. 따라서 주문 정보 테이블에 수량 필드를 추가합니다.
주문 ID |
제품 ID |
수량 |
---|---|---|
1012 |
12 |
1 |
1012 |
15 |
1 |
1012 |
30 |
5 |
중간 테이블 만들기
-
만들기 > 테이블을 선택합니다.
-
저장을 선택합니다.
-
이름을 보고 내용을 알 수 있도록 테이블 이름을 입력합니다. 목적을 분명히 표시하기 위해 테이블 이름에 접합 또는 중간이라는 단어를 포함하는 것이 좋습니다.
중간 테이블에 필드 만들기
첫 번째 테이블 열인 Access ID 필드를 자동으로 추가합니다. 다대다 관계의 첫 번째 테이블의 ID와 일치하도록 이 필드를 변경합니다. 예를 들어, 첫 번째 테이블이 주문 ID라는 주문 테이블이고 그 기본 키가 숫자라면, 새 테이블의 ID 필드 이름을 주문 ID로 변경하고 데이터 형식을 숫자로 선택합니다.
-
데이터시트 보기에서 ID 열 제목을 선택하고 해당 필드에 사용할 새 이름을 입력합니다.
-
방금 이름을 바꾼 필드를 선택합니다.
-
테이블 필드 탭의 데이터 형식에서 원본 테이블의 필드(예: 숫자 또는 짧은 텍스트)와 일치하는 데이터 형식을 선택합니다.
-
추가하려면 클릭을 선택한 다음 두 번째 테이블의 기본 키와 일치하는 데이터 형식을 선택합니다. 이미 선택한 열 제목에 두 번째 테이블의 기본 키 필드의 이름(예: 제품 ID)을 입력합니다.
-
이 레코드에 관한 다른 정보(항목 수량 등)를 추적하려면 추가 필드를 만듭니다.
기본 ID 필드 결합
연결하려는 두 테이블의 ID를 포함하는 필드를 만들었으니 이제 이러한 ID에 따라 중간 테이블에 기본 키를 만듭니다.
-
디자인 보기에서 중간 테이블을 엽니다.
-
해당 ID를 포함하는 두 행을 모두 선택합니다. (위 절차를 그대로 따랐다면 맨 위에 있는 두 행을 선택하면 됩니다.)
-
테이블 디자인 > 기본 키를 선택합니다.
키 아이콘은 두 ID 필드 옆에 표시됩니다.
테이블 3개를 연결하여 다대다 관계 만들기
다대다 관계를 완성하려면 각 테이블의 기본 키 필드와 중간 테이블의 해당 필드 사이에 일대다 관계를 만듭니다. 자세한 내용은 테이블 관계 시작을 참조하세요.
작업을 마치면 다음과 같은 관계를 볼 수 있습니다.