创建机票预订系统数据库的代码
时间: 2023-11-17 16:07:12 浏览: 20
以下是一个简单的机票预订系统数据库的创建代码,使用MySQL数据库:
```
CREATE DATABASE flight_booking_system; -- 创建数据库
USE flight_booking_system; -- 使用该数据库
-- 创建用户表
CREATE TABLE User (
user_id INT PRIMARY KEY AUTO_INCREMENT,
username VARCHAR(50) NOT NULL UNIQUE,
password VARCHAR(50) NOT NULL,
name VARCHAR(50) NOT NULL,
gender ENUM('Male', 'Female') NOT NULL,
contact VARCHAR(50) NOT NULL
);
-- 创建航班表
CREATE TABLE Flight (
flight_id INT PRIMARY KEY AUTO_INCREMENT,
flight_no VARCHAR(10) NOT NULL,
departure VARCHAR(50) NOT NULL,
destination VARCHAR(50) NOT NULL,
departure_time DATETIME NOT NULL,
arrival_time DATETIME NOT NULL,
price DECIMAL(10, 2) NOT NULL
);
-- 创建座位表
CREATE TABLE Seat (
seat_id INT PRIMARY KEY AUTO_INCREMENT,
flight_id INT NOT NULL,
seat_no VARCHAR(10) NOT NULL,
seat_type ENUM('First Class', 'Business Class', 'Economy Class') NOT NULL,
status ENUM('Sold', 'Available') NOT NULL,
FOREIGN KEY (flight_id) REFERENCES Flight(flight_id)
);
-- 创建订单表
CREATE TABLE Order (
order_id INT PRIMARY KEY AUTO_INCREMENT,
user_id INT NOT NULL,
flight_id INT NOT NULL,
seat_id INT NOT NULL,
status ENUM('Paid', 'Refunded', 'Canceled') NOT NULL,
FOREIGN KEY (user_id) REFERENCES User(user_id),
FOREIGN KEY (flight_id) REFERENCES Flight(flight_id),
FOREIGN KEY (seat_id) REFERENCES Seat(seat_id)
);
-- 创建支付表
CREATE TABLE Payment (
payment_id INT PRIMARY KEY AUTO_INCREMENT,
order_id INT NOT NULL,
method ENUM('Alipay', 'WeChat Pay', 'Bank Transfer') NOT NULL,
amount DECIMAL(10, 2) NOT NULL,
payment_time DATETIME NOT NULL,
FOREIGN KEY (order_id) REFERENCES Order(order_id)
);
-- 创建退款表
CREATE TABLE Refund (
refund_id INT PRIMARY KEY AUTO_INCREMENT,
order_id INT NOT NULL,
amount DECIMAL(10, 2) NOT NULL,
refund_time DATETIME NOT NULL,
FOREIGN KEY (order_id) REFERENCES Order(order_id)
);
```
需要注意的是,以上代码只是一个简单的示例,实际应用中还需要进行更多的优化和完善,如增加索引、添加触发器等。同时,还需要根据具体业务需求进行调整和修改,以适应实际应用场景。