음식 주문 정보를 저장하는 테이블은 식당, 배달 서비스, 또는 온라인 푸드 오더링 시스템에서 주문을 관리하고 처리하는 데 중요합니다. 이 테이블은 주문 ID, 고객 ID, 주문 항목, 수량, 가격, 주문 날짜 및 시간, 배달 주소, 주문 상태 등의 정보를 포함할 수 있습니다. 다음은 음식 주문 정보를 저장하기 위한 테이블 생성을 위한 SQL 쿼리문 예제와 각각의 설명입니다.
1. 기본 음식 주문 테이블 생성
CREATE TABLE food_orders (
order_id INT AUTO_INCREMENT PRIMARY KEY,
customer_id INT,
total_cost DECIMAL(10, 2),
order_date TIMESTAMP,
delivery_address TEXT,
status VARCHAR(50),
FOREIGN KEY (customer_id) REFERENCES customers(customer_id)
);
설명: 주문 ID, 고객 ID, 총 비용, 주문 날짜 및 시간, 배달 주소, 주문 상태 등을 저장합니다.
2. 고객 정보 테이블 생성
CREATE TABLE customers (
customer_id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(100),
contact_info TEXT,
address TEXT,
registration_date DATE
);
설명: 고객 ID, 이름, 연락처 정보, 주소, 등록 날짜 등을 저장합니다.
3. 주문 항목 테이블 생성
CREATE TABLE order_items (
item_id INT AUTO_INCREMENT PRIMARY KEY,
order_id INT,
menu_id INT,
quantity INT,
price_per_item DECIMAL(10, 2),
total_price DECIMAL(10, 2),
FOREIGN KEY (order_id) REFERENCES food_orders(order_id),
FOREIGN KEY (menu_id) REFERENCES menu(menu_id)
);
설명: 주문 항목 ID, 주문 ID, 메뉴 ID, 수량, 항목당 가격, 총 가격 등을 저장합니다.
4. 메뉴 테이블 생성
CREATE TABLE menu (
menu_id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(100),
description TEXT,
price DECIMAL(10, 2),
category VARCHAR(50)
);
설명: 메뉴 ID, 메뉴명, 설명, 가격, 카테고리 등을 저장합니다.
5. 주문 결제 정보 테이블 생성
CREATE TABLE order_payments (
payment_id INT AUTO_INCREMENT PRIMARY KEY,
order_id INT,
payment_date TIMESTAMP,
amount DECIMAL(10, 2),
payment_method VARCHAR(50),
FOREIGN KEY (order_id) REFERENCES food_orders(order_id)
);
설명: 결제 ID, 주문 ID, 결제 날짜, 결제 금액, 결제 방법 등을 저장합니다.
6. 주문 상태 변경 기록 테이블 생성
CREATE TABLE order_status_changes (
change_id INT AUTO_INCREMENT PRIMARY KEY,
order_id INT,
previous_status VARCHAR(50),
new_status VARCHAR(50),
change_date TIMESTAMP,
FOREIGN KEY (order_id) REFERENCES food_orders(order_id)
);
설명: 상태 변경 기록 ID, 주문 ID, 이전 상태, 새 상태, 변경 날짜 등을 저장합니다.
7. 배달원 정보 테이블 생성
CREATE TABLE delivery_agents (
agent_id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(100),
contact_info TEXT
);
설명: 배달원 ID, 이름, 연락처 정보 등을 저장합니다.
8. 배달 기록 테이블 생성
CREATE TABLE delivery_logs (
delivery_id INT AUTO_INCREMENT PRIMARY KEY,
order_id INT,
agent_id INT,
start_time TIMESTAMP,
end_time TIMESTAMP,
delivery_status VARCHAR(50),
FOREIGN KEY (order_id) REFERENCES food_orders(order_id),
FOREIGN KEY (agent_id) REFERENCES delivery_agents(agent_id)
);
설명: 배달 기록 ID, 주문 ID, 배달원 ID, 시작 시간, 종료 시간, 배달 상태 등을 저장합니다.
9. 주문 리뷰 테이블 생성
CREATE TABLE order_reviews (
review_id INT AUTO_INCREMENT PRIMARY KEY,
order_id INT,
customer_id INT,
review_date TIMESTAMP,
rating INT,
comment TEXT,
FOREIGN KEY (order_id) REFERENCES food_orders(order_id),
FOREIGN KEY (customer_id) REFERENCES customers(customer_id)
);
설명: 리뷰 ID, 주문 ID, 고객 ID, 리뷰 날짜, 평점, 코멘트 등을 저장합니다.
10. 특별 요청 테이블 생성
CREATE TABLE special_requests (
request_id INT AUTO_INCREMENT PRIMARY KEY,
order_id INT,
request_text TEXT,
FOREIGN KEY (order_id) REFERENCES food_orders(order_id)
);
설명: 특별 요청 ID, 주문 ID, 요청 내용 등을 저장합니다.
관련 전문용어 설명
CREATE TABLE: 새로운 테이블을 생성하는 SQL 명령어입니다.
INT, VARCHAR, TIMESTAMP, DECIMAL, TEXT: 데이터 유형을 나타냅니다.
AUTO_INCREMENT: 자동으로 숫자를 증가시키는 속성입니다.
PRIMARY KEY: 각 행을 고유하게 식별하는 주 키입니다.
FOREIGN KEY: 다른 테이블의 주 키를 참조하는 외래 키입니다.
'SQL' 카테고리의 다른 글
사용자 프로필 테이블 생성: 사용자 프로필 정보를 저장하기 위한 테이블을 생성합니다. (0) | 2024.01.02 |
---|---|
항공편 예약 테이블 생성: 항공편 예약 정보를 저장하기 위한 테이블을 생성합니다. (1) | 2024.01.02 |
호텔 예약 테이블 생성: 호텔 예약 정보를 저장하기 위한 테이블을 생성합니다. (1) | 2024.01.02 |
공지사항 테이블 생성: 웹사이트 공지사항 정보를 저장하기 위한 테이블을 생성합니다. (0) | 2024.01.01 |
블로그 포스트 테이블 생성: 블로그 포스트 정보를 저장하기 위한 테이블을 생성합니다. (0) | 2024.01.01 |