初步完成登录、注册、修改账号、主页内容
This commit is contained in:
128
Project/db.sql
128
Project/db.sql
@@ -1,102 +1,58 @@
|
||||
DROP TABLE IF EXISTS Sold;
|
||||
DROP TABLE IF EXISTS Transactions;
|
||||
DROP TABLE IF EXISTS Passbys;
|
||||
DROP TABLE IF EXISTS Tickets;
|
||||
DROP TABLE IF EXISTS Seats;
|
||||
DROP TABLE IF EXISTS Flights;
|
||||
DROP TABLE IF EXISTS Airports;
|
||||
DROP TABLE IF EXISTS Users;
|
||||
DROP TABLE IF EXISTS Passengers;
|
||||
DROP TABLE IF EXISTS Rides;
|
||||
DROP TABLE IF EXISTS Trains;
|
||||
DROP TABLE IF EXISTS Stations;
|
||||
|
||||
CREATE TABLE Passengers (
|
||||
ID BIGINT PRIMARY KEY,
|
||||
`Name` VARCHAR ( 255 ) NOT NULL,
|
||||
Phone_number BIGINT UNIQUE NOT NULL,
|
||||
CHECK ( REGEXP_LIKE ( ID, '^\\d{18}$' ) ),
|
||||
CHECK ( REGEXP_LIKE ( Phone_number, '^\\d{11}$' ) )
|
||||
ID BIGINT PRIMARY KEY,
|
||||
`Name` VARCHAR(255) NOT NULL,
|
||||
Phone_number BIGINT NOT NULL,
|
||||
CHECK (REGEXP_LIKE(ID, '^\\d{18}$')),
|
||||
CHECK (REGEXP_LIKE(Phone_number, '^\\d{11}$'))
|
||||
);
|
||||
|
||||
CREATE TABLE Users (
|
||||
ID INT AUTO_INCREMENT PRIMARY KEY,
|
||||
`Password` VARCHAR ( 255 ) NOT NULL,
|
||||
Phone_number BIGINT UNIQUE NOT NULL,
|
||||
CitizenID BIGINT UNIQUE NOT NULL,
|
||||
FOREIGN KEY ( Phone_number ) REFERENCES Passengers ( Phone_number ) ON DELETE CASCADE,
|
||||
FOREIGN KEY ( CitizenID ) REFERENCES Passengers ( ID ) ON DELETE CASCADE
|
||||
Phone_number BIGINT PRIMARY KEY,
|
||||
Username VARCHAR(255) NOT NULL,
|
||||
`Password` VARCHAR(255) NOT NULL,
|
||||
CHECK (REGEXP_LIKE(Phone_number, '^\\d{11}$'))
|
||||
);
|
||||
|
||||
CREATE TABLE Stations (
|
||||
ID INT AUTO_INCREMENT PRIMARY KEY,
|
||||
`Name` VARCHAR ( 255 ) UNIQUE NOT NULL,
|
||||
Province VARCHAR ( 255 ) NOT NULL,
|
||||
City VARCHAR ( 255 ) NOT NULL
|
||||
CREATE TABLE Airports (
|
||||
ID INT AUTO_INCREMENT PRIMARY KEY,
|
||||
`Name` VARCHAR(255) UNIQUE NOT NULL,
|
||||
Country VARCHAR(255) NOT NULL,
|
||||
City VARCHAR(255) NOT NULL
|
||||
);
|
||||
|
||||
CREATE TABLE Trains (
|
||||
ID VARCHAR ( 255 ) PRIMARY KEY,
|
||||
TrainName VARCHAR ( 255 ) NOT NULL,
|
||||
StationID_start INT NOT NULL,
|
||||
StationID_arrive INT NOT NULL,
|
||||
FOREIGN KEY ( StationID_start ) REFERENCES Stations ( ID ) ON DELETE CASCADE,
|
||||
FOREIGN KEY ( StationID_arrive ) REFERENCES Stations ( ID ) ON DELETE CASCADE
|
||||
);
|
||||
|
||||
CREATE TABLE Seats (
|
||||
ID VARCHAR ( 255 ) PRIMARY KEY,
|
||||
Type VARCHAR ( 255 ) NOT NULL,
|
||||
TrainID VARCHAR ( 255 ) NOT NULL,
|
||||
FOREIGN KEY ( TrainID ) REFERENCES Trains ( ID ) ON DELETE CASCADE
|
||||
CREATE TABLE Flights (
|
||||
ID VARCHAR(255) PRIMARY KEY,
|
||||
Airline VARCHAR(255) NOT NULL,
|
||||
Departure_airport INT NOT NULL,
|
||||
Arrival_airport INT NOT NULL,
|
||||
Departure_time DATETIME NOT NULL,
|
||||
Arrival_time DATETIME NOT NULL,
|
||||
First_class_seats_remaining INT NOT NULL, -- 头等舱剩余座位
|
||||
Business_class_seats_remaining INT NOT NULL, -- 商务舱剩余座位
|
||||
Economy_class_seats_remaining INT NOT NULL, -- 经济舱剩余座位
|
||||
First_class_price DECIMAL(7, 2) NOT NULL, -- 头等舱价格
|
||||
Business_class_price DECIMAL(7, 2) NOT NULL, -- 商务舱价格
|
||||
Economy_class_price DECIMAL(7, 2) NOT NULL, -- 经济舱价格
|
||||
`Status` VARCHAR(255) NOT NULL CHECK (`Status` IN ('候机中', '延误', '已起飞', '已降落', '开始检票')), -- 航班状态
|
||||
FOREIGN KEY (Departure_airport) REFERENCES Airports(ID) ON DELETE CASCADE,
|
||||
FOREIGN KEY (Arrival_airport) REFERENCES Airports(ID) ON DELETE CASCADE,
|
||||
CHECK (Departure_time < Arrival_time)
|
||||
);
|
||||
|
||||
CREATE TABLE Tickets (
|
||||
ID INT AUTO_INCREMENT PRIMARY KEY,
|
||||
Price DECIMAL ( 7, 2 ) NOT NULL,
|
||||
Time_start DATETIME NOT NULL,
|
||||
Time_arrive DATETIME NOT NULL,
|
||||
StationID_start INT NOT NULL,
|
||||
StationID_arrive INT NOT NULL,
|
||||
SeatID VARCHAR ( 255 ) NOT NULL,
|
||||
FOREIGN KEY ( StationID_start ) REFERENCES Stations ( ID ) ON DELETE CASCADE,
|
||||
FOREIGN KEY ( StationID_arrive ) REFERENCES Stations ( ID ) ON DELETE CASCADE,
|
||||
FOREIGN KEY ( SeatID ) REFERENCES Seats ( ID ) ON DELETE CASCADE,
|
||||
CHECK ( Time_start <= Time_arrive )
|
||||
);
|
||||
|
||||
CREATE TABLE Transactions (
|
||||
ID BIGINT AUTO_INCREMENT PRIMARY KEY,
|
||||
`Time` DATETIME NOT NULL,
|
||||
Paid TINYINT NOT NULL,
|
||||
`User` INT NOT NULL,
|
||||
PassengerID BIGINT NOT NULL,
|
||||
TrainID VARCHAR ( 255 ) NOT NULL,
|
||||
StationID_start INT NOT NULL,
|
||||
StationID_arrive INT NOT NULL,
|
||||
Time_start DATETIME NOT NULL,
|
||||
Time_arrive DATETIME NOT NULL,
|
||||
SeatID VARCHAR ( 255 ) NOT NULL,
|
||||
FOREIGN KEY ( `User` ) REFERENCES Users ( ID ) ON DELETE CASCADE,
|
||||
FOREIGN KEY ( PassengerID ) REFERENCES Passengers ( ID ) ON DELETE CASCADE,
|
||||
FOREIGN KEY ( TrainID ) REFERENCES Trains ( ID ) ON DELETE CASCADE,
|
||||
FOREIGN KEY ( StationID_start ) REFERENCES Stations ( ID ) ON DELETE CASCADE,
|
||||
FOREIGN KEY ( StationID_arrive ) REFERENCES Stations ( ID ) ON DELETE CASCADE,
|
||||
FOREIGN KEY ( SeatID ) REFERENCES Seats ( ID ) ON DELETE CASCADE,
|
||||
CHECK ( Time_start < Time_arrive )
|
||||
);
|
||||
|
||||
CREATE TABLE Sold (
|
||||
TransactionID BIGINT NOT NULL,
|
||||
TicketID INT NOT NULL,
|
||||
FOREIGN KEY ( TransactionID ) REFERENCES Transactions ( ID ) ON DELETE CASCADE,
|
||||
FOREIGN KEY ( TicketID ) REFERENCES Tickets ( ID ) ON DELETE CASCADE
|
||||
);
|
||||
|
||||
CREATE TABLE Passbys (
|
||||
StationID INT NOT NULL,
|
||||
TrainID VARCHAR ( 255 ) NOT NULL,
|
||||
arrive_time DATETIME NOT NULL,
|
||||
leave_time DATETIME NOT NULL,
|
||||
FOREIGN KEY ( StationID ) REFERENCES Stations ( ID ) ON DELETE CASCADE,
|
||||
FOREIGN KEY ( TrainID ) REFERENCES Trains ( ID ) ON DELETE CASCADE,
|
||||
CHECK ( arrive_time <= leave_time )
|
||||
ID INT AUTO_INCREMENT PRIMARY KEY,
|
||||
Price DECIMAL(7, 2) NOT NULL,
|
||||
FlightID VARCHAR(255) NOT NULL,
|
||||
Seat_class VARCHAR(255) NOT NULL, -- 级别信息
|
||||
PassengerID BIGINT NOT NULL,
|
||||
Paid TINYINT NOT NULL,
|
||||
FOREIGN KEY (FlightID) REFERENCES Flights(ID) ON DELETE CASCADE,
|
||||
FOREIGN KEY (PassengerID) REFERENCES Passengers(ID) ON DELETE CASCADE,
|
||||
CHECK (Seat_class IN ('First Class', 'Business Class', 'Economy Class'))
|
||||
);
|
||||
Reference in New Issue
Block a user