데이터 모델링

성종호·2021년 12월 1일
0
post-thumbnail

  • 여러 카테고리를 갖고있는 메뉴

예) 채소[ 고구마, 시금치, 브로콜리 등 ]

categories -

  • 여러 상품을 포함한 카테코리, 메뉴의 하위격으로 카테고리를 포함하고있는 메뉴의 pk를 fk로 갖고있다.

예) 고구마[ 친환경고구마, 유기농고구마 등 ]

image -

  • 여러 상품의 이미지를 담고있다.

예) 친환경고구마[ url1, url2, url3 등 ]

products -

  • 상품의 상세 내용(가격, 부피, 상품이름 등)을 담고있으며 카테고리의 하위격으로 카테고리의 pk를 fk로 갖고있다.

예) 친환경고구마[ 이름=친환경고구마, 가격=3000 등 ]

users -

  • 회원가입한 유저의 상세정보가 들어있다.

예) 홍길동[ 이름=홍길동, 아이디=홍길동123 패스워드=123 등]

cart -

  • 로그인한 유저가 사고싶은 상품들 담고있다. cart의경우 한 유저가 여러 상품들을 담을수 있고, 한 상품이 여러
    유저에게 담길수 있으므로 유저의 pk를 fk로 갖고있고 상품의 pk를 fk로 갖고있는 중간테이블을 겸하고 있는 class이고 한 유저가 하나의 상품만 사는 경우만 있는게 아니라서 product_quantity 컬럼을 추가하여

구매수량을 저장할수 있다.

예) ( 유저=홍길동(id=1), 상품=홍길동(id=2), 구매수량=3 )

order -

  • 로그인한 유저가 구매한 상품들을 담고있다. cart와 마찬가지고 유저와 상품의 pk를 fk로 갖고있는 중간테이블을 겸한 class이고 order에서 파생됬다고 할수있는 status와 order_list의 pk를 fk로 갖고있고, 주문한 수량을 갖고있는 product_quantity가 있다.

order_list -

  • 유저가 예를들어 물건을 3개를 구매한다고 하면 그 구매한 내역이 담겨있는 영수증은 하나이다.
    그 영수증을 모아놓은 테이블이며 내가 구매한 상품의 영수증만을 가져와야 하므로 유저의 pk를 fk로 갖고있다.

status -

  • 내가 상품을 주문할때 한번에 여러 상품을 주문한다고 해서 해당상품들이 한번에 올수도 있지만 각각의 배송상태가 다를 확률도 있다.
    같다고 하여도 같은값들이 중복되는것이기 때문에 status 테이블을 따로 빼서 각각의 구매한 상품에대한 status를 표기할수 있게끔 하였다.

예) (order_number=1111 ( 상품1=배송중 ),( 상품2=주문완료 ),( 상품3=출고완료 ) 등 )

##모델링하면서 어려웠던점##

실제로 사용해보지 못한 order를 작성할때 애를 먹었던것 같다. 실제로 상품을 구매하는것이 아니라

어떠한 데이터가 중복으로 올지 어떠한 데이터가 오는지를 가늠할수 없어서 컬럼을 추가하거나 테이블을

추가하는 등의 생각을 해보지 못했다

profile
아자

0개의 댓글