호텔 예약 정보를 저장하는 테이블은 호텔 예약 시스템의 핵심 구성 요소로, 고객의 예약 상세 정보, 객실 상태, 결제 정보 등을 관리합니다. 이 테이블은 예약 ID, 고객 ID, 객실 ID, 예약 날짜, 체크인 날짜, 체크아웃 날짜, 예약 상태, 총 비용 등의 정보를 포함할 수 있습니다. 다음은 호텔 예약 정보를 저장하기 위한 테이블 생성을 위한 SQL 쿼리문 예제와 각각의 설명입니다.
1. 기본 호텔 예약 테이블 생성
CREATE TABLE hotel_bookings (
booking_id INT AUTO_INCREMENT PRIMARY KEY,
customer_id INT,
room_id INT,
booking_date DATE,
check_in_date DATE,
check_out_date DATE,
status VARCHAR(50),
total_cost DECIMAL(10, 2),
FOREIGN KEY (customer_id) REFERENCES customers(customer_id),
FOREIGN KEY (room_id) REFERENCES rooms(room_id)
);
설명: 예약 ID, 고객 ID, 객실 ID, 예약 날짜, 체크인 날짜, 체크아웃 날짜, 예약 상태, 총 비용 등을 저장합니다.
2. 고객 정보 테이블 생성
CREATE TABLE customers (
customer_id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(100),
contact_info TEXT,
registration_date DATE
);
설명: 고객 ID, 이름, 연락처 정보, 등록 날짜 등을 저장합니다.
3. 객실 정보 테이블 생성
CREATE TABLE rooms (
room_id INT AUTO_INCREMENT PRIMARY KEY,
room_number VARCHAR(10),
room_type VARCHAR(50),
capacity INT,
price_per_night DECIMAL(10, 2)
);
설명: 객실 ID, 방 번호, 객실 타입, 수용 인원, 1박당 가격 등을 저장합니다.
4. 예약 결제 정보 테이블 생성
CREATE TABLE booking_payments (
payment_id INT AUTO_INCREMENT PRIMARY KEY,
booking_id INT,
payment_date DATE,
amount_paid DECIMAL(10, 2),
payment_method VARCHAR(50),
FOREIGN KEY (booking_id) REFERENCES hotel_bookings(booking_id)
);
설명: 결제 ID, 예약 ID, 결제 날짜, 지불한 금액, 결제 방법 등을 저장합니다.
5. 예약 변경 기록 테이블 생성
CREATE TABLE booking_changes (
change_id INT AUTO_INCREMENT PRIMARY KEY,
booking_id INT,
change_date DATE,
previous_check_in DATE,
new_check_in DATE,
previous_check_out DATE,
new_check_out DATE,
change_reason TEXT,
FOREIGN KEY (booking_id) REFERENCES hotel_bookings(booking_id)
);
설명: 변경 기록 ID, 예약 ID, 변경 날짜, 변경 전/후 체크인/체크아웃 날짜, 변경 이유 등을 저장합니다.
6. 예약 취소 기록 테이블 생성
CREATE TABLE booking_cancellations (
cancellation_id INT AUTO_INCREMENT PRIMARY KEY,
booking_id INT,
cancellation_date DATE,
cancellation_reason TEXT,
refund_amount DECIMAL(10, 2),
FOREIGN KEY (booking_id) REFERENCES hotel_bookings(booking_id)
);
설명: 취소 기록 ID, 예약 ID, 취소 날짜, 취소 이유, 환불 금액 등을 저장합니다.
7. 객실 상태 테이블 생성
CREATE TABLE room_statuses (
status_id INT AUTO_INCREMENT PRIMARY KEY,
room_id INT,
date DATE,
status VARCHAR(50),
FOREIGN KEY (room_id) REFERENCES rooms(room_id)
);
설명: 상태 ID, 객실 ID, 날짜, 객실 상태(예: 예약됨, 비어있음, 청소중) 등을 저장합니다.
8. 특별 요청 테이블 생성
CREATE TABLE special_requests (
request_id INT AUTO_INCREMENT PRIMARY KEY,
booking_id INT,
request_text TEXT,
response TEXT,
FOREIGN KEY (booking_id) REFERENCES hotel_bookings(booking_id)
);
설명: 특별 요청 ID, 예약 ID, 요청 내용, 응답 내용 등을 저장합니다.
9. 호텔 리뷰 테이블 생성
CREATE TABLE hotel_reviews (
review_id INT AUTO_INCREMENT PRIMARY KEY,
booking_id INT,
customer_id INT,
review_date DATE,
rating INT,
comments TEXT,
FOREIGN KEY (booking_id) REFERENCES hotel_bookings(booking_id),
FOREIGN KEY (customer_id) REFERENCES customers(customer_id)
);
설명: 리뷰 ID, 예약 ID, 고객 ID, 리뷰 날짜, 평점, 코멘트 등을 저장합니다.
10. 객실 청소 일정 테이블 생성
CREATE TABLE room_cleaning_schedules (
schedule_id INT AUTO_INCREMENT PRIMARY KEY,
room_id INT,
cleaning_date DATE,
cleaner_id INT,
FOREIGN KEY (room_id) REFERENCES rooms(room_id)
);
설명: 청소 일정 ID, 객실 ID, 청소 날짜, 청소 스태프 ID 등을 저장합니다.
관련 전문용어 설명
CREATE TABLE: 새로운 테이블을 생성하는 SQL 명령어입니다.
INT, VARCHAR, DATE, DECIMAL, TEXT: 데이터 유형을 나타냅니다.
AUTO_INCREMENT: 자동으로 숫자를 증가시키는 속성입니다.
PRIMARY KEY: 각 행을 고유하게 식별하는 주 키입니다.
FOREIGN KEY: 다른 테이블의 주 키를 참조하는 외래 키입니다.
'SQL' 카테고리의 다른 글
항공편 예약 테이블 생성: 항공편 예약 정보를 저장하기 위한 테이블을 생성합니다. (1) | 2024.01.02 |
---|---|
음식 주문 테이블 생성: 음식 주문 정보를 저장하기 위한 테이블을 생성합니다. (1) | 2024.01.02 |
공지사항 테이블 생성: 웹사이트 공지사항 정보를 저장하기 위한 테이블을 생성합니다. (0) | 2024.01.01 |
블로그 포스트 테이블 생성: 블로그 포스트 정보를 저장하기 위한 테이블을 생성합니다. (0) | 2024.01.01 |
채팅 메시지 테이블 생성: 채팅 메시지 정보를 저장하기 위한 테이블을 생성합니다. (0) | 2024.01.01 |