illsang

member-item 테이블 설계

99duuk 2024. 5. 29. 21:04

  • Member 테이블 (고객 테이블):
    • MemberID (PK): 고객의 고유 식별자
    • Name: 고객의 이름
    • Email: 고객의 이메일 주소
    • Address: 고객의 주소
  • Item 테이블 (상품 테이블):
    • ItemID (PK): 상품의 고유 식별자
    • Name: 상품의 이름
    • Price: 상품의 가격
    • Description: 상품의 설명
  • Order 테이블 (주문 테이블):
    • OrderID (PK): 주문의 고유 식별자
    • MemberID (FK): 주문한 고객의 ID (Member 테이블의 외래 키)
    • OrderDate: 주문 날짜
  • Order_Item 테이블 (주문-상품 관계 테이블):
    • Order_ItemID (PK): 주문-상품 관계의 고유 식별자
    • OrderID (FK): 주문의 ID (Order 테이블의 외래 키)
    • ItemID (FK): 주문한 상품의 ID (Item 테이블의 외래 키)
    • Quantity: 주문한 상품의 수량

 

  • Order 테이블은 Member 테이블과 일대다 관계입니다. 한 명의 고객은 여러 개의 주문을 할 수 있습니다.
  • Order 테이블은 Order_Item 테이블과 일대다 관계입니다. 한 개의 주문은 여러 개의 상품을 포함할 수 있습니다.
  • Item 테이블은 Order_Item 테이블과 일대다 관계입니다. 여러 개의 주문이 동일한 상품을 포함할 수 있습니다.

 


수량만 필요하다면 member, item, order 3개 테이블이면 충분하지만, 한 개의 주문에 여러 종류의 상품이 포함될 수 있으니 order_item으로 다대다 관계를 해소하는 테이블이 추가되어 총 4개 테이블이 필요

 

 

만약 한 개의 주문에 하나의 상품만 포함된다면, Member, Item, Order 세 개의 테이블만으로도 충분합니다. 이 경우 Order 테이블에 주문된 상품과 수량을 직접 저장할 수 있습니다. 그러나 한 개의 주문에 여러 종류의 상품이 포함될 수 있다면, 이를 해결하기 위해 중간 테이블인 Order_Item이 필요합니다.

따라서 총 4개의 테이블이 필요하게 됩니다:

  1. Member 테이블 (고객 테이블): 고객 정보를 저장
  2. Item 테이블 (상품 테이블): 상품 정보를 저장
  3. Order 테이블 (주문 테이블): 주문 정보를 저장
  4. Order_Item 테이블 (주문-상품 관계 테이블): 주문과 상품 간의 다대다 관계를 해소하고, 각 주문에 포함된 상품과 그 수량을 저장

 


 

 

  1. 홍길동 (MemberID 1)은 2023-05-01에 주문(OrderID 1)을 했습니다. 이 주문에는 스마트폰 (ItemID 1) 한 개와 태블릿 (ItemID 3) 두 개가 포함되어 있습니다.
  2. 김철수 (MemberID 2)는 2023-05-02에 주문(OrderID 2)을 했습니다. 이 주문에는 노트북 (ItemID 2) 한 개와 태블릿 (ItemID 3) 한 개가 포함되어 있습니다.

이렇게 4개의 테이블을 사용하면, 각 주문에 여러 상품을 포함할 수 있는 구조를 효과적으로 관리할 수 있습니다. Order_Item 테이블을 통해 주문과 상품 간의 다대다 관계를 해소하고, 각 주문에 포함된 상품과 그 수량을 명확하게 저장할 수 있습니다.

 


OrderIDCustomerNameCustomerEmailCustomerAddressOrderDateItemNameItemPriceQuantity

1 홍길동 hong@example.com 서울특별시 강남구 2023-05-01 스마트폰 1000 1
1 홍길동 hong@example.com 서울특별시 강남구 2023-05-01 태블릿 1500 2