1. p_users 테이블 필드 정의
필드 이름 |
데이터 타입 |
PRIMARY KEY |
FOREIGN KEY |
UNIQUE |
NULL 허용 |
설명 |
user_id 🗝️ |
INTEGER |
✅ |
|
✅ |
❌ |
기본 키, 자동 증가 ID |
userid |
VARCHAR(255) |
|
|
✅ |
❌ |
로그인 ID (고유) |
email |
VARCHAR(255) |
|
|
✅ |
❌ |
이메일 주소 |
password |
VARCHAR(255) |
|
|
❌ |
❌ |
해시된 비밀번호 |
name |
VARCHAR(100) |
|
|
❌ |
❌ |
사용자 실명 |
phone |
VARCHAR(20) |
|
|
✅ |
❌ |
고유한 핸드폰 번호 |
role |
VARCHAR(50) |
|
|
❌ |
❌ |
사용자 역할‘CUSTOMER’, ‘OWNER’, ‘MANAGER’, ‘MASTER’ |
created_at |
TIMESTAMP |
|
|
❌ |
❌ |
생성 일시 |
created_by |
VARCHAR(100) |
|
|
❌ |
✅ |
생성자 |
updated_at |
TIMESTAMP |
|
|
❌ |
✅ |
수정 일시 |
updated_by |
VARCHAR(100) |
|
|
❌ |
✅ |
수정자 |
deleted_at |
TIMESTAMP |
|
|
❌ |
✅ |
삭제 일시 |
deleted_by |
VARCHAR(100) |
|
|
❌ |
✅ |
삭제자 |
Table p_users {
id INTEGER [primary key, increment] // PK (자동 증가 ID)
username VARCHAR(255) [unique, not null] // name
email VARCHAR(255) [unique, not null] // 이메일 (로그인 ID)
password VARCHAR(255) [not null] // 암호 (해싱 저장)
name VARCHAR(100) [not null] // 사용자 이름
phone VARCHAR(20) [unique, not null] // 휴대폰 번호
role VARCHAR(50) [not null, note: "CUSTOMER, OWNER, MANAGER, MASTER"] // 역할 구분 (고객, 점주, 관리자)
created_at TIMESTAMP [default: "CURRENT_TIMESTAMP"]
created_by VARCHAR(100)
updated_at TIMESTAMP [default: "CURRENT_TIMESTAMP"]
updated_by VARCHAR(100)
deleted_at TIMESTAMP [default: "CURRENT_TIMESTAMP"]
deleted_by VARCHAR(100)
}
p_users (사용자) 테이블 관계도 요약
p_user_addresses
(배송지 정보): 1:N 관계 (사용자는 여러 개의 배송지를 가질 수 있음)
p_orders
(주문): 1:N 관계 (사용자는 여러 개의 주문을 할 수 있음)
p_stores
(매장): 1:N 관계 (점주는 여러 개의 매장을 소유할 수 있음)
p_reviews
(리뷰): 1:N 관계 (사용자는 여러 개의 리뷰를 작성할 수 있음)
p_ai_interactions
(AI 질의응답 기록): 1:N 관계 (사용자는 여러 개의 AI 상호작용을 할 수 있음)
p_payments
(결제): 1:N 관계 (사용자는 여러 개의 결제를 수행할 수 있음)
2. p_user_addresses 테이블 필드 정의
필드 이름 |
데이터 타입 |
PRIMARY KEY |
FOREIGN KEY |
UNIQUE |
NULL 허용 |
설명 |
id |
UUID |
✅ |
|
✅ |
❌ |
배송지 ID (PK) |
user_id |
INTEGER |
|
✅ |
|
❌ |
배송지 소유자 ID (FK) |
address_name |
VARCHAR(255) |
|
|
|
❌ |
주소명 (예: "집", "회사", "친구 집") |
recipient_name |
VARCHAR(100) |
|
|
|
❌ |
수령인 이름 |
address |
VARCHAR(255) |
|
|
|
❌ |
상세 주소 |
zip_code |
VARCHAR(10) |
|
|
|
❌ |
우편번호 |
is_default |
BOOLEAN |
|
|
|
✅ (기본값 false) |
기본 배송지 여부 (true 이면 기본 설정) |
created_at |
TIMESTAMP |
|
|
|
❌ |
배송지 생성 일시 |
created_by |
VARCHAR(100) |
|
|
|
✅ |
생성자 |
updated_at |
TIMESTAMP |
|
|
|
✅ |
수정 일시 |
updated_by |
VARCHAR(100) |
|
|
|
✅ |
수정자 |
deleted_at |
TIMESTAMP |
|
|
|
✅ |
삭제 일시 |
deleted_by |
VARCHAR(100) |
|
|
|
✅ |
삭제자 |
p_users
(사용자 테이블): 1:N 관계 (각 사용자는 여러 개의 배송지를 가질 수 있음)
p_orders
(주문 테이블): 1:N 관계 (각 주문은 특정 배송지를 참조할 수 있음)