해결된 질문
작성
·
231
2
안녕하세요.
'도메인 분석 설계 - 도메인 모델과 테이블 설계, 엔티티 클래스 개발 1' 강의 부분에 궁금한 사항이 있어서 여쭙습니다.
팀장님께서 예제로써 설계하신 테이블 및 클래스 연관관계 매핑을 작성하던 중에
만약, 주문과 배송이 1:1 관계가 아니라, 1:N 관계를 이루고 있다고 한다면 주문(Order) 테이블과 배송(Delivery) 테이블 사이에
이들을 1:N으로 연관시킬 수 있는 중간테이블이 존재해야하는지, 이때 외래키는 배송 테이블로 설정해야하는지 알고싶습니다.
질의 내용을 아래에 쉽게 풀어 보았습니다.
예를들어,
하나의 주문정보가 있고
주문 내역에는 여러 상품들이 있는 경우
이때 각 주문 상품에 대해 배송정보(택배회사, 운송장번호 등)를 등록해주어야 하는 요구사항있다면 프로젝트 설계단계에서 테이블 및 클래스 연관관계 설정이 궁금합니다.
미리 답변 감사드리며, 새해 복 많이 받으세요.
답변 2
4
안녕하세요. Painkiller님
주문과 배송이 1:1관계가 아니라 1:N 관계를 이루면 배송이 외래키를 가지는 방식으로 설계해야 합니다.
또는 중간테이블을 두고 중간테이블이 주문과 배송 양쪽의 키를 가지는 방식으로 설계하셔도 됩니다.
중간테이블을 두는 방식은 1:N 관계뿐만 아니라 향후 N:M 관계로 설계를 쉽게 변경할 수 있다는 장점이 있는 반면에, 테이블을 하나 더 관리해야 하기 때문에 시스템 운영과 성능에서 단점을 가지고 있습니다.
더 궁금한 내용이 있으면 추가로 질문주세요.
그리고 새해 복 많이 받으세요^^
1
주문상품에 대한 배송정보가 달라 주문과 배송이 1:N이 된다면, ORDER와 DELIVERY 관계는 끊고 ORDER_ITEM과 DELIVERY에 대한 관계를 새로 정의하는 방식도 있을거 같아요..!