배달의 민족을 클론코딩 하기 위해 erd를 먼저 설계해 보았다.
해당 erd는 아래 링크에서 한 눈에 자세히 볼 수 있다.
- 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로 가짐
'Server' 카테고리의 다른 글
배달의민족 클론코딩 - 화면 별 MySQL 쿼리 작성하기 (0) | 2022.04.30 |
---|---|
AWS RDS 구축하기(MySQL) (0) | 2022.04.28 |
AWS 서버 구축하기(3) / Domain, HTTPS, Sub Domain, Redirection 적용 (2) | 2022.04.21 |
AWS 서버 구축하기(2) / MySQL 외부 접속 / phpMyAdmin 설치 (0) | 2022.04.21 |
AWS 서버 구축하기(1) / Nginx, MySQL, php 설치 및 외부 접속 (0) | 2022.04.21 |
댓글