배달 플랫폼 인프라 & DB & API 설계

sinryuji·2025년 2월 13일

인프라 설계도

ERD

테이블 명세서

https://teamsparta.notion.site/1982dc3ef514804ab021d3cd40fe09d0

1. 사용자 테이블 (p_user)

필드 이름데이터 타입설명
idBIGINT사용자 식별자, Primary Key
emailVARCHAR사용자 이메일, Unique
passwordVARCHAR사용자 비밀번호
usernameVARCHAR사용자 이름
roleENUM사용자 역할 (CUSTOMER, OWNER, MANAGER, MASTER)
addressVARCHAR사용자 주소
phone_numberVARCHAR사용자 전화번호
created_atTIMESTAMP레코드 생성 시간
created_byVARCHAR레코드 생성자 (username)
updated_atTIMESTAMP레코드 수정 시간
updated_byVARCHAR레코드 수정자 (username)
deleted_atTIMESTAMP레코드 삭제 시간
deleted_byVARCHAR레코드 삭제자 (username)

2. 카테고리 테이블 (p_category)

필드 이름데이터 타입설명
idUUID카테고리 식별자, Primary Key
nameVARCHAR카테고리명
created_atTIMESTAMP레코드 생성 시간
created_byVARCHAR레코드 생성자 (username)
updated_atTIMESTAMP레코드 수정 시간
updated_byVARCHAR레코드 수정자 (username)
deleted_atTIMESTAMP레코드 삭제 시간
deleted_byVARCHAR레코드 삭제자 (username)

3. 지역 테이블 (p_region)

필드 이름데이터 타입설명
idUUID지역 식별자, Primary Key
nameVARCHAR지역명
created_atTIMESTAMP레코드 생성 시간
created_byVARCHAR레코드 생성자 (username)
updated_atTIMESTAMP레코드 수정 시간
updated_byVARCHAR레코드 수정자 (username)
deleted_atTIMESTAMP레코드 삭제 시간
deleted_byVARCHAR레코드 삭제자 (username)

4. 가게 테이블 (p_store)

필드 이름데이터 타입설명
idUUID가게 식별자, Primary Key
nameVARCHAR가게명
addressVARCHAR가게 주소
phone_numberVARCHAR가게 전화번호
imageVARCHAR가게 이미지 URL
user_idBIGINT사용자 ID, p_user(id) Foreign Key (1:1)
category_idUUID카테고리 ID, p_category(id) Foreign Key (1:1)
region_idUUID지역 ID, p_region(id) Foreign Key (1:1)
created_atTIMESTAMP레코드 생성 시간
created_byVARCHAR레코드 생성자 (username)
updated_atTIMESTAMP레코드 수정 시간
updated_byVARCHAR레코드 수정자 (username)
deleted_atTIMESTAMP레코드 삭제 시간
deleted_byVARCHAR레코드 삭제자 (username)

5. 메뉴 테이블 (p_menu)

필드 이름데이터 타입설명
idUUID메뉴 식별자, Primary Key
nameVARCHAR메뉴명
priceBIGINT메뉴 가격
descriptionTEXT메뉴 설명
statusENUM메뉴 상태 (판매중, 하루품절, 숨김)
imageVARCHAR메뉴 이미지 URL
store_idUUID가게 ID, p_store(id) Foreign Key(1:N)
created_atTIMESTAMP레코드 생성 시간
created_byVARCHAR레코드 생성자 (username)
updated_atTIMESTAMP레코드 수정 시간
updated_byVARCHAR레코드 수정자 (username)
deleted_atTIMESTAMP레코드 삭제 시간
deleted_byVARCHAR레코드 삭제자 (username)

6. 메뉴 옵션 테이블 (p_menu_option)

필드 이름데이터 타입설명
idUUID메뉴 옵션 식별자, Primary Key
categoryVARCHAR메뉴 옵션 카테고리
priceBIGINT메뉴 옵션 가격
menu_idUUID메뉴 ID, p_menu(id) Foreign Key (1:N)
created_atTIMESTAMP레코드 생성 시간
created_byVARCHAR레코드 생성자 (username)
updated_atTIMESTAMP레코드 수정 시간
updated_byVARCHAR레코드 수정자 (username)
deleted_atTIMESTAMP레코드 삭제 시간
deleted_byVARCHAR레코드 삭제자 (username)

7. 주문 테이블 (p_order)

필드 이름데이터 타입설명
idUUID주문 식별자, Primary Key
total_priceBIGINT주문 금액
delivery_typeENUM픽업 유형 (배달, 포장)
order_typeENUM주문 유형 (전화, 온라인)
statusENUM주문 상태 (결제완료, 주문접수, 조리중, 배달중, 배달완료, 주문취소)
user_idBIGINT사용자 ID, p_user(id) Foreign Key (1:N)
store_idUUID매장 ID, p_store(id) Foreign Key (1:N)
delivery_address_idUUID배송지 ID, p_delivery_address(id) Foreign Key (1:1)
created_atTIMESTAMP레코드 생성 시간
created_byVARCHAR레코드 생성자 (username)
updated_atTIMESTAMP레코드 수정 시간
updated_byVARCHAR레코드 수정자 (username)
deleted_atTIMESTAMP레코드 삭제 시간
deleted_byVARCHAR레코드 삭제자 (username)

8. 메뉴와 주문 중간테이블 (p_menu_order)

필드 이름데이터 타입설명
idUUIDp_menu_order 식별자, Primary Key
quantityBIGINT메뉴의 주문 수량
menu_idUUID메뉴 ID, p_menu(id) Foreign Key (1:N)
order_idUUID주문 ID, p_order(id) Foreign Key (1:N)
created_atTIMESTAMP레코드 생성 시간
created_byVARCHAR레코드 생성자 (username)
updated_atTIMESTAMP레코드 수정 시간
updated_byVARCHAR레코드 수정자 (username)
deleted_atTIMESTAMP레코드 삭제 시간
deleted_byVARCHAR레코드 삭제자 (username)

9. p_menu_orderp_menu_option 중간 테이블 (p_menu_order_option)

필드 이름데이터 타입설명
idUUIDp_menu_order_option 식별자, Primary Key
menu_order_idUUID메뉴 주문 ID, p_menu_order(id) Foreign Key (1:N)
menu_option_idUUID메뉴 옵션 ID, p_menu_option(id) Foreign Key (1:N)
created_atTIMESTAMP레코드 생성 시간
created_byVARCHAR레코드 생성자 (username)
updated_atTIMESTAMP레코드 수정 시간
updated_byVARCHAR레코드 수정자 (username)
deleted_atTIMESTAMP레코드 삭제 시간
deleted_byVARCHAR레코드 삭제자 (username)

10. 결제 테이블 (p_payment)

필드 이름데이터 타입설명
idUUID결제 식별자, Primary Key
priceBIGINT결제 금액
user_idBIGINT사용자 ID, p_user(id) Foreign Key (1:1)
order_idUUID주문 ID, p_order(id) Foreign Key (1:1)
created_atTIMESTAMP레코드 생성 시간
created_byVARCHAR레코드 생성자 (username)
updated_atTIMESTAMP레코드 수정 시간
updated_byVARCHAR레코드 수정자 (username)
deleted_atTIMESTAMP레코드 삭제 시간
deleted_byVARCHAR레코드 삭제자 (username)

11. 배송지 테이블 (p_delivery_address)

필드 이름데이터 타입설명
idUUID배송지 식별자, Primary Key
addressVARCHAR배송지 주소
user_idBIGINT사용자 ID, p_user(id) Foreign Key (1:N)
created_atTIMESTAMP레코드 생성 시간
created_byVARCHAR레코드 생성자 (username)
updated_atTIMESTAMP레코드 수정 시간
updated_byVARCHAR레코드 수정자 (username)
deleted_atTIMESTAMP레코드 삭제 시간
deleted_byVARCHAR레코드 삭제자 (username)

12. 리뷰 테이블 (p_review)

필드 이름데이터 타입설명
idUUID리뷰 식별자, Primary Key
contentTEXT리뷰 내용
gradeINT평점 (1~5)
imageVARCHAR리뷰 이미지 URL
order_idUUID주문 ID, p_order(id) Foreign Key (1:1)
created_atTIMESTAMP레코드 생성 시간
created_byVARCHAR레코드 생성자 (username)
updated_atTIMESTAMP레코드 수정 시간
updated_byVARCHAR레코드 수정자 (username)
deleted_atTIMESTAMP레코드 삭제 시간
deleted_byVARCHAR레코드 삭제자 (username)

13. 사장님의 리뷰 테이블 (p_owner_review)

필드 이름데이터 타입설명
idUUID사장님의 리뷰 식별자, Primary Key
contentTEXT사장님의 리뷰 답변 내용
review_idUUID주문 ID, p_review(id) Foreign Key (1:1)
created_atTIMESTAMP레코드 생성 시간
created_byVARCHAR레코드 생성자 (username)
updated_atTIMESTAMP레코드 수정 시간
updated_byVARCHAR레코드 수정자 (username)
deleted_atTIMESTAMP레코드 삭제 시간
deleted_byVARCHAR레코드 삭제자 (username)

14. AI 프롬프팅 테이블 (p_ai_prompting)

필드 이름데이터 타입설명
idUUIDAI 프롬프팅 식별자, Primary Key
questionTEXTAI 질문 내용
answerTEXTAI 답변 내용
created_atTIMESTAMP레코드 생성 시간
created_byVARCHAR레코드 생성자 (username)
updated_atTIMESTAMP레코드 수정 시간
updated_byVARCHAR레코드 수정자 (username)
deleted_atTIMESTAMP레코드 삭제 시간
deleted_byVARCHAR레코드 삭제자 (username)

API 명세서

https://teamsparta.notion.site/API-1982dc3ef514807499b4e44477264f7b


profile
응애 개발자입니다.

0개의 댓글