Thumper 2022. 8. 1. 21:11

1. Database Schema

1. 회원 (users)

  • 회원정보로 name, loginId, password, email, 배송지정보가 있다.
  • 배송지정보(city 도시, street 도로명주소, zipcode 우편번호)는 Address 임베디드 타입 정보로 들어갔다.

 

2. 상품 (item)

  • 상품정보로 categoryType(상품 카테고리), itemName(상품명), itemType(상품 상태등급), price(상품가격), stockQuantity(재고량)이 있다.

3. 상품 이미지(item_img)

  • imgName(저장된 이미지 파일명), originImgName(이미지 이름), savePath(파일경로), reImgYn(대표 이미지)이 있다.

 

4. 장바구니 (cart)

  • 회원별 주문한 상품들(orderItem)을 담는다.
  • 주문정보로 상품정보(item), 각각의  주문수량(count), 상품주문액(orderPrice)이 있다.

 


 

2. 연관관계 매핑 분석

회원과 장바구니(users - cart)

  • 일대일의 양방향 관계다. ( 연관관계를 표시하기 위해 양방향 매핑을 했다.)
  • cart.users 를 cart.users_id 외래 키와 매핑한다.

 

장바구니와 주문상품(cart - orderItem)

장바구니에 담긴 상품 정보를 관리하기 위해, Cart와 Item 간의 다대다(M:N) 관계를 중간 테이블 OrderItem을 활용하여 일대다(1:N) 및 다대일(N:1) 관계로 분리하여 설계했다.

  • 일대다 양방향 관계다.
  • 외래 키가 주문상품에 있으므로 주문상품이 연관관계의 주인이다.
  • orderItem.cart 를 order_item.cart_id 외래 키와 매핑한다.

 

 

주문상품과 상품(orderItem - item)

  • 다대일 단방향 관계다.
  • orderItem.item 을 order_item.item_id 외래 키와 매핑한다.

 

 

회원과 상품(users - item)

  • 회원은 상품을 등록할 수 있다.
  • 일대다 양방향 관계다.
  • item.users를 item.users_id 외래 키와 매핑한다.

 

 

상품과 상품이미지(item- itemImg)

  • 상품정보에 여러 개의 이미지가 포함된다.
  • 일대다 단방향 매핑이다. (연관관계 주인은 itemImg이다.)
  • item_id가 외래키가 되어 Item과 연관관계 매핑이 된다.