본문 바로가기
Server

배달의민족 클론코딩 - erd 설계하기

by 멍진 2022. 5. 2.

배달의 민족을 클론코딩 하기 위해 erd를 먼저 설계해 보았다.

해당 erd는 아래 링크에서 한 눈에 자세히 볼 수 있다.

🔗ERD by Aquery Tool

  • Password : c4142h

User 관련 테이블

  • Users

  • User_address & User_coupons

두 테이블 모두 유저와 1:N 관계로 유저 id를 FK로 가진다.

User_coupons 테이블 에서는 같은 쿠폰을 여러명의 유저가 가질 수 있으므로 coupon_id 또한 FK로 가진다.

Store 관련 테이블

  • Stores

가게 카테고리 : 가게 = 1 : N 이므로 Stores테이블에서 카테고리 식별번호를 FK로 설정

  • delievery_fee

주문 금액에 따라 배달비가 다르게 책정되는 것을 테이블로 보여주기 위함

  • Store_images & Store_categories

Menu 관련 테이블

  • Menu

하나의 가게가 여러개의 메뉴를 포함하는 관계

하나의 메뉴 카테고리가 여러개의 메뉴를 포함하는 관계

하나의 메뉴에 여러장의 사진이 들어갈 수 있는 관계

  • Menu_categories & Menu_images

  • Menu_options_value & Menu_options

Menu_options : 맵기, 사이드메뉴 추가선택 등

Menu_options_value : 1단계, 치즈볼추가 등 (옵션에 대한 선택지)

Order 관련 테이블

  • Orders

배민의 주문은 장바구니를 통해서만 이루어진다.

하나의 장바구니 자체를 주문하는 시스템

  • Order_carts

하나의 장바구니 안에 같은 가게의 여러메뉴가 담긴다.

  • Order_menu

장바구니 : 주문메뉴 = 1 : N 이므로 cart_id를 FK 설정

  • Selected_options

주문 시 선택된 옵션-옵션값 매핑 테이블

맵기 - 1단계 등의 정보가 매핑되어 저장된다.

Review 관련 테이블

  • Review

리뷰 테이블은 특성상 주문, 유저, 가게 모두와 관계가 있다.

  • Review_images

Likes 관련 테이블

  • Likes

찜 테이블 유저와 가게 id를 FK로 가짐

댓글