안녕하세요.
쇼핑몰 db 를 설계하던 중에 어떻게 해결해야 할 지 모르겠어서 문의드립니다.
고객이 주문을 하면 배송을 해야 합니다.
그런데 만약 고객이 취소를 하거나 교환을 원할 경우에도 배송을 해줘야 합니다.
그래서 테이블이 4개 - 주문, 교환, 취소, 배송 - 가 있습니다.
교환,취소,배송 테이블은 주문 테이블을 참조합니다. (한번의 주문에서 여러번의 교환,취소,배송이 발생할 수 있습니다)
CREATE TABLE 주문 (주문 id int PK);
CREATE TABLE 교환 (교환 id int PK, 주문id FK);
CREATE TABLE 취소 (취소id int PK, 주문id FK);
CREATE TABLE 배송 (배송id int PK, 주문id FK);
문제는 교환이나 취소의 경우에도 배송정보가 있어야 하는데 어떻게 관계를 설정해야 할 지 모르겠네요.
생각1: 주문,교환,취소를 가지고 슈퍼타입을 만들 생각도 했지만 겹치는 필드가 거의 없고 형식적으로 만드는 것이 아닌가 의문이 듭니다.
생각2: 배송 테이블에 주문id, 교환id, 취소id 를 전부 만드는 것을 생각해봤습니다.
이런 경우를 해결하신 분이 있으시면 알려주시면 감사하겠습니다 ;) |