버스 예매 정보를 저장하는 테이블은 버스 운송 서비스에서 승객의 예약을 관리하는 데 중요합니다. 이 테이블은 예매 ID, 승객 ID, 버스 노선, 예매 날짜와 시간, 출발지, 도착지, 좌석 번호, 예매 상태, 결제 정보 등의 정보를 포함할 수 있습니다. 다음은 모바일 버스 예약 서비스를 위한 테이블 생성을 위한 SQL 쿼리문 예제와 각각의 설명입니다.
1. 기본 버스 예매 테이블 생성
CREATE TABLE bus_bookings (
booking_id INT AUTO_INCREMENT PRIMARY KEY,
passenger_id INT,
route_id INT,
booking_date TIMESTAMP,
departure_date DATE,
departure_time TIME,
departure_location TEXT,
arrival_location TEXT,
seat_number VARCHAR(10),
booking_status VARCHAR(50),
payment_status VARCHAR(50)
);
설명: 예매 ID, 승객 ID, 노선 ID, 예매 날짜, 출발 날짜, 출발 시간, 출발지, 도착지, 좌석 번호, 예매 상태, 결제 상태 등을 저장합니다.
2. 승객 정보 테이블 생성
CREATE TABLE passengers (
passenger_id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(100),
contact_info TEXT,
email VARCHAR(100)
);
설명: 승객 ID, 이름, 연락처 정보, 이메일 등을 저장합니다.
3. 버스 노선 정보 테이블 생성
CREATE TABLE bus_routes (
route_id INT AUTO_INCREMENT PRIMARY KEY,
route_name VARCHAR(100),
start_location TEXT,
end_location TEXT,
total_distance DECIMAL(7,2)
);
설명: 노선 ID, 노선명, 출발지, 도착지, 총 거리 등을 저장합니다.
4. 예매 변경 로그 테이블 생성
CREATE TABLE booking_changes (
change_id INT AUTO_INCREMENT PRIMARY KEY,
booking_id INT,
change_date TIMESTAMP,
change_type VARCHAR(50),
reason TEXT,
FOREIGN KEY (booking_id) REFERENCES bus_bookings(booking_id)
);
설명: 변경 로그 ID, 예매 ID, 변경 날짜, 변경 타입, 변경 이유 등을 저장합니다.
5. 예매 취소 테이블 생성
CREATE TABLE booking_cancellations (
cancellation_id INT AUTO_INCREMENT PRIMARY KEY,
booking_id INT,
cancellation_date TIMESTAMP,
reason TEXT,
FOREIGN KEY (booking_id) REFERENCES bus_bookings(booking_id)
);
설명: 취소 ID, 예매 ID, 취소 날짜, 취소 이유 등을 저장합니다.
6. 결제 정보 테이블 생성
CREATE TABLE payment_info (
payment_id INT AUTO_INCREMENT PRIMARY KEY,
booking_id INT,
payment_date TIMESTAMP,
amount DECIMAL(7,2),
payment_method VARCHAR(50),
payment_status VARCHAR(50),
FOREIGN KEY (booking_id) REFERENCES bus_bookings(booking_id)
);
설명: 결제 ID, 예매 ID, 결제 날짜, 결제 금액, 결제 방법, 결제 상태 등을 저장합니다.
7. 버스 좌석 정보 테이블 생성
CREATE TABLE bus_seats (
seat_id INT AUTO_INCREMENT PRIMARY KEY,
bus_id INT,
seat_number VARCHAR(10),
seat_class VARCHAR(50),
availability BOOLEAN
);
설명: 좌석 ID, 버스 ID, 좌석 번호, 좌석 등급, 사용 가능 여부 등을 저장합니다.
8. 승객 피드백 테이블 생성
CREATE TABLE passenger_feedback (
feedback_id INT AUTO_INCREMENT PRIMARY KEY,
booking_id INT,
feedback_date TIMESTAMP,
rating INT,
comments TEXT,
FOREIGN KEY (booking_id) REFERENCES bus_bookings(booking_id)
);
설명: 피드백 ID, 예매 ID, 피드백 날짜, 평점, 코멘트 등을 저장합니다.
9. 버스 운행 일정 테이블 생성
CREATE TABLE bus_schedules (
schedule_id INT AUTO_INCREMENT PRIMARY KEY,
route_id INT,
departure_time TIME,
arrival_time TIME,
bus_id INT,
FOREIGN KEY (route_id) REFERENCES bus_routes(route_id)
);
설명: 운행 일정 ID, 노선 ID, 출발 시간, 도착 시간, 버스 ID 등을 저장합니다.
10. 버스 기사 정보 테이블 생성
CREATE TABLE bus_drivers (
driver_id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(100),
license_number VARCHAR(50),
contact_info TEXT,
employed_date DATE
);
설명: 버스 기사 ID, 이름, 면허 번호, 연락처 정보, 고용 날짜 등을 저장합니다.
10. 관련 전문용어 설명
CREATE TABLE: 새로운 테이블을 생성하는 SQL 명령어입니다.
INT, VARCHAR, TIMESTAMP, DECIMAL, TEXT, TIME, DATE, BOOLEAN: 데이터 유형을 나타냅니다.
AUTO_INCREMENT: 자동으로 숫자를 증가시키는 속성입니다.
PRIMARY KEY: 각 행을 고유하게 식별하는 주 키입니다.
FOREIGN KEY: 다른 테이블의 주 키를 참조하는 외래 키입니다.
'SQL' 카테고리의 다른 글
온라인 예약 테이블 생성: 예약 서비스를 위한 테이블을 생성합니다. (2) | 2024.01.02 |
---|---|
자동차 주행 로그 테이블 생성: 자동차 주행 로그 정보를 저장하기 위한 테이블을 생성합니다. (1) | 2024.01.02 |
지도 위치 테이블 생성: 지도 위치 정보를 저장하기 위한 테이블을 생성합니다. (1) | 2024.01.02 |
학교 수업 일정 테이블 생성: 학교 수업 일정 정보를 저장하기 위한 테이블을 생성합니다. (1) | 2024.01.02 |
음악 플레이리스트 테이블 생성: 음악 플레이리스트 정보를 저장하기 위한 테이블을 생성합니다. (0) | 2024.01.02 |