DB/MySQL

[MySQL] MySQL 쇼핑몰 구매과정 ERD설계

AlexHouse 2022. 2. 27. 23:32
728x90

본인은 쇼핑몰중에 요즘 뜨고있는 오늘의 집 가구쇼핑몰에 관해서 뜯보고 데이터베이스를 배운대로 설계해보는것을 시도 해보려고한다. 왜 테이블을 파생시켰으며, 어떤 데이터를 넣을 것인가에대해서 복습하면서 틀린게 있다면 고쳐가는 시간을 갖아 보고자한다. 자 그럼 시작해볼까.?

메인테이블: thProduct

메인 테이블을 제품이라고 잡은 이유는 이게 맞다고 생각이 들기 때문이다. 제품이라는 테이블이 가장 상위의 개념이 있어야 그것을 통해서 제품옵션, 제품구매, 제품쿠폰, 등등.. 다양한 하위테이블이 생성가능하다고 생각한다. 과연 제품테이블보다 상위 개념을 갖을수있는것이 있을까?. 있으면 댓글을 달아주기 바란다. 물론이게 정답은 아니지만, 적어도 내가 하려는 가구쇼핑몰에서는 제품이 상위테이블이다.

 

 

제품옵션테이블 thProductOption

제품을 구매할 때 제품에 대한 정보들 예를들어, 사이즈, 색상, 추가상품(선택) 이러한 요소들에대한 정보를 삽입해줄때, 만약 우리가 색상을 고를때 빨간색과 파란색이 섞인 제품을 고르고싶다. 아니면 추가상품을 긴쿠션1, 작은쿠션1, 발밭침대 파란색, 발밭침대 초록색등등 여러가지의 옵션이 중복이 충분히 가능하기 때문에 thproductoption테이블을 파생했다.

그리고 이 정보는 메인테이블인 thproduct과 일대다 관계를 갖기 때문에 다음과 같이 릴레이션을 잡아줬다.

 

 

제품구매테이블 thProductBuy

제품구매테이블을 파생해준이유는, 제품을 구매할 때 여러가지 말그대로 제품구매창에서 필요한 정보들을 받기 위해서 만들어주었다. 

 

쿠폰테이블 thCoupon

쿠폰 테이블을 파생시켜준 이유는, 쿠폰 정보가 여러가지 중첩되서 사용될 수 있기 때문에, 예를들어 회사 매출이 높으면 데일리 쿠폰을 10% 밖에 안주다가 매출이 떨어지면 15~20% 쿠폰을 발급하게 된경우 날짜가 겹치게 되면 데일리쿠폰을 10% 짜리도 15~20% 짜리도 사용할 수 있기 때문에 쿠폰테이블을 파생시켜주었다.

 

보유쿠폰테이블 infrMemberCoupon

이 테이블은 유저테이블에서 쿠폰을 갖고있는 계수를 확인하기 위해서 만든테이블이며, 여러가지 쿠폰이 중첩되서 사용 될 수 있으며 , 받은 쿠폰을 여러개 발급 받았을수도 있어서 쿠폰 테이블을 파생시켜주었다.

 

전체적인 테이블 모습

 

 

 

이것이 현재 내가 만든 테이블 모습이다. 아직까지는 오류는 없어보인다. 만약 오류가 보인다면 댓글을 달아주면 감사하겠습니다.

 

 


 

 

 

 

To be continue..

728x90