인프라 설계도

ERD

테이블 명세서
https://teamsparta.notion.site/1982dc3ef514804ab021d3cd40fe09d0
1. 사용자 테이블 (p_user)
| 필드 이름 | 데이터 타입 | 설명 |
|---|
id | BIGINT | 사용자 식별자, Primary Key |
email | VARCHAR | 사용자 이메일, Unique |
password | VARCHAR | 사용자 비밀번호 |
username | VARCHAR | 사용자 이름 |
role | ENUM | 사용자 역할 (CUSTOMER, OWNER, MANAGER, MASTER) |
address | VARCHAR | 사용자 주소 |
phone_number | VARCHAR | 사용자 전화번호 |
created_at | TIMESTAMP | 레코드 생성 시간 |
created_by | VARCHAR | 레코드 생성자 (username) |
updated_at | TIMESTAMP | 레코드 수정 시간 |
updated_by | VARCHAR | 레코드 수정자 (username) |
deleted_at | TIMESTAMP | 레코드 삭제 시간 |
deleted_by | VARCHAR | 레코드 삭제자 (username) |
2. 카테고리 테이블 (p_category)
| 필드 이름 | 데이터 타입 | 설명 |
|---|
id | UUID | 카테고리 식별자, Primary Key |
name | VARCHAR | 카테고리명 |
created_at | TIMESTAMP | 레코드 생성 시간 |
created_by | VARCHAR | 레코드 생성자 (username) |
updated_at | TIMESTAMP | 레코드 수정 시간 |
updated_by | VARCHAR | 레코드 수정자 (username) |
deleted_at | TIMESTAMP | 레코드 삭제 시간 |
deleted_by | VARCHAR | 레코드 삭제자 (username) |
3. 지역 테이블 (p_region)
| 필드 이름 | 데이터 타입 | 설명 |
|---|
id | UUID | 지역 식별자, Primary Key |
name | VARCHAR | 지역명 |
created_at | TIMESTAMP | 레코드 생성 시간 |
created_by | VARCHAR | 레코드 생성자 (username) |
updated_at | TIMESTAMP | 레코드 수정 시간 |
updated_by | VARCHAR | 레코드 수정자 (username) |
deleted_at | TIMESTAMP | 레코드 삭제 시간 |
deleted_by | VARCHAR | 레코드 삭제자 (username) |
4. 가게 테이블 (p_store)
| 필드 이름 | 데이터 타입 | 설명 |
|---|
id | UUID | 가게 식별자, Primary Key |
name | VARCHAR | 가게명 |
address | VARCHAR | 가게 주소 |
phone_number | VARCHAR | 가게 전화번호 |
image | VARCHAR | 가게 이미지 URL |
user_id | BIGINT | 사용자 ID, p_user(id) Foreign Key (1:1) |
category_id | UUID | 카테고리 ID, p_category(id) Foreign Key (1:1) |
region_id | UUID | 지역 ID, p_region(id) Foreign Key (1:1) |
created_at | TIMESTAMP | 레코드 생성 시간 |
created_by | VARCHAR | 레코드 생성자 (username) |
updated_at | TIMESTAMP | 레코드 수정 시간 |
updated_by | VARCHAR | 레코드 수정자 (username) |
deleted_at | TIMESTAMP | 레코드 삭제 시간 |
deleted_by | VARCHAR | 레코드 삭제자 (username) |
| 필드 이름 | 데이터 타입 | 설명 |
|---|
id | UUID | 메뉴 식별자, Primary Key |
name | VARCHAR | 메뉴명 |
price | BIGINT | 메뉴 가격 |
description | TEXT | 메뉴 설명 |
status | ENUM | 메뉴 상태 (판매중, 하루품절, 숨김) |
image | VARCHAR | 메뉴 이미지 URL |
store_id | UUID | 가게 ID, p_store(id) Foreign Key(1:N) |
created_at | TIMESTAMP | 레코드 생성 시간 |
created_by | VARCHAR | 레코드 생성자 (username) |
updated_at | TIMESTAMP | 레코드 수정 시간 |
updated_by | VARCHAR | 레코드 수정자 (username) |
deleted_at | TIMESTAMP | 레코드 삭제 시간 |
deleted_by | VARCHAR | 레코드 삭제자 (username) |
| 필드 이름 | 데이터 타입 | 설명 |
|---|
id | UUID | 메뉴 옵션 식별자, Primary Key |
category | VARCHAR | 메뉴 옵션 카테고리 |
price | BIGINT | 메뉴 옵션 가격 |
menu_id | UUID | 메뉴 ID, p_menu(id) Foreign Key (1:N) |
created_at | TIMESTAMP | 레코드 생성 시간 |
created_by | VARCHAR | 레코드 생성자 (username) |
updated_at | TIMESTAMP | 레코드 수정 시간 |
updated_by | VARCHAR | 레코드 수정자 (username) |
deleted_at | TIMESTAMP | 레코드 삭제 시간 |
deleted_by | VARCHAR | 레코드 삭제자 (username) |
7. 주문 테이블 (p_order)
| 필드 이름 | 데이터 타입 | 설명 |
|---|
id | UUID | 주문 식별자, Primary Key |
total_price | BIGINT | 주문 금액 |
delivery_type | ENUM | 픽업 유형 (배달, 포장) |
order_type | ENUM | 주문 유형 (전화, 온라인) |
status | ENUM | 주문 상태 (결제완료, 주문접수, 조리중, 배달중, 배달완료, 주문취소) |
user_id | BIGINT | 사용자 ID, p_user(id) Foreign Key (1:N) |
store_id | UUID | 매장 ID, p_store(id) Foreign Key (1:N) |
delivery_address_id | UUID | 배송지 ID, p_delivery_address(id) Foreign Key (1:1) |
created_at | TIMESTAMP | 레코드 생성 시간 |
created_by | VARCHAR | 레코드 생성자 (username) |
updated_at | TIMESTAMP | 레코드 수정 시간 |
updated_by | VARCHAR | 레코드 수정자 (username) |
deleted_at | TIMESTAMP | 레코드 삭제 시간 |
deleted_by | VARCHAR | 레코드 삭제자 (username) |
| 필드 이름 | 데이터 타입 | 설명 |
|---|
id | UUID | p_menu_order 식별자, Primary Key |
quantity | BIGINT | 메뉴의 주문 수량 |
menu_id | UUID | 메뉴 ID, p_menu(id) Foreign Key (1:N) |
order_id | UUID | 주문 ID, p_order(id) Foreign Key (1:N) |
created_at | TIMESTAMP | 레코드 생성 시간 |
created_by | VARCHAR | 레코드 생성자 (username) |
updated_at | TIMESTAMP | 레코드 수정 시간 |
updated_by | VARCHAR | 레코드 수정자 (username) |
deleted_at | TIMESTAMP | 레코드 삭제 시간 |
deleted_by | VARCHAR | 레코드 삭제자 (username) |
| 필드 이름 | 데이터 타입 | 설명 |
|---|
id | UUID | p_menu_order_option 식별자, Primary Key |
menu_order_id | UUID | 메뉴 주문 ID, p_menu_order(id) Foreign Key (1:N) |
menu_option_id | UUID | 메뉴 옵션 ID, p_menu_option(id) Foreign Key (1:N) |
created_at | TIMESTAMP | 레코드 생성 시간 |
created_by | VARCHAR | 레코드 생성자 (username) |
updated_at | TIMESTAMP | 레코드 수정 시간 |
updated_by | VARCHAR | 레코드 수정자 (username) |
deleted_at | TIMESTAMP | 레코드 삭제 시간 |
deleted_by | VARCHAR | 레코드 삭제자 (username) |
10. 결제 테이블 (p_payment)
| 필드 이름 | 데이터 타입 | 설명 |
|---|
id | UUID | 결제 식별자, Primary Key |
price | BIGINT | 결제 금액 |
user_id | BIGINT | 사용자 ID, p_user(id) Foreign Key (1:1) |
order_id | UUID | 주문 ID, p_order(id) Foreign Key (1:1) |
created_at | TIMESTAMP | 레코드 생성 시간 |
created_by | VARCHAR | 레코드 생성자 (username) |
updated_at | TIMESTAMP | 레코드 수정 시간 |
updated_by | VARCHAR | 레코드 수정자 (username) |
deleted_at | TIMESTAMP | 레코드 삭제 시간 |
deleted_by | VARCHAR | 레코드 삭제자 (username) |
11. 배송지 테이블 (p_delivery_address)
| 필드 이름 | 데이터 타입 | 설명 |
|---|
id | UUID | 배송지 식별자, Primary Key |
address | VARCHAR | 배송지 주소 |
user_id | BIGINT | 사용자 ID, p_user(id) Foreign Key (1:N) |
created_at | TIMESTAMP | 레코드 생성 시간 |
created_by | VARCHAR | 레코드 생성자 (username) |
updated_at | TIMESTAMP | 레코드 수정 시간 |
updated_by | VARCHAR | 레코드 수정자 (username) |
deleted_at | TIMESTAMP | 레코드 삭제 시간 |
deleted_by | VARCHAR | 레코드 삭제자 (username) |
12. 리뷰 테이블 (p_review)
| 필드 이름 | 데이터 타입 | 설명 |
|---|
id | UUID | 리뷰 식별자, Primary Key |
content | TEXT | 리뷰 내용 |
grade | INT | 평점 (1~5) |
image | VARCHAR | 리뷰 이미지 URL |
order_id | UUID | 주문 ID, p_order(id) Foreign Key (1:1) |
created_at | TIMESTAMP | 레코드 생성 시간 |
created_by | VARCHAR | 레코드 생성자 (username) |
updated_at | TIMESTAMP | 레코드 수정 시간 |
updated_by | VARCHAR | 레코드 수정자 (username) |
deleted_at | TIMESTAMP | 레코드 삭제 시간 |
deleted_by | VARCHAR | 레코드 삭제자 (username) |
13. 사장님의 리뷰 테이블 (p_owner_review)
| 필드 이름 | 데이터 타입 | 설명 |
|---|
id | UUID | 사장님의 리뷰 식별자, Primary Key |
content | TEXT | 사장님의 리뷰 답변 내용 |
review_id | UUID | 주문 ID, p_review(id) Foreign Key (1:1) |
created_at | TIMESTAMP | 레코드 생성 시간 |
created_by | VARCHAR | 레코드 생성자 (username) |
updated_at | TIMESTAMP | 레코드 수정 시간 |
updated_by | VARCHAR | 레코드 수정자 (username) |
deleted_at | TIMESTAMP | 레코드 삭제 시간 |
deleted_by | VARCHAR | 레코드 삭제자 (username) |
14. AI 프롬프팅 테이블 (p_ai_prompting)
| 필드 이름 | 데이터 타입 | 설명 |
|---|
id | UUID | AI 프롬프팅 식별자, Primary Key |
question | TEXT | AI 질문 내용 |
answer | TEXT | AI 답변 내용 |
created_at | TIMESTAMP | 레코드 생성 시간 |
created_by | VARCHAR | 레코드 생성자 (username) |
updated_at | TIMESTAMP | 레코드 수정 시간 |
updated_by | VARCHAR | 레코드 수정자 (username) |
deleted_at | TIMESTAMP | 레코드 삭제 시간 |
deleted_by | VARCHAR | 레코드 삭제자 (username) |
API 명세서
https://teamsparta.notion.site/API-1982dc3ef514807499b4e44477264f7b


