我将创建以下内容:
一个位置表,其中包含每个可能的位置和一个 ID 值
CREATE TABLE Location(
LocationID int NOT NULL AUTO_INCREMENT,
Location nchar(10) NOT NULL,
PRIMARY KEY
(LocationID)
);
行程表,包括行程的每一段。它有一个腿的 ID,以及作为位置表的外键的起点和终点的位置 ID
CREATE TABLE Leg(
LegID int NOT NULL AUTO_INCREMENT,
Origin int NOT NULL,
Destination int NOT NULL,
PRIMARY KEY(LegID)
);
FOREIGN KEY(Origin) REFERENCES Location(LocationID)
FOREIGN KEY(Destination) REFERENCES Location(LocationID)
包含行程的每条线路的行程表,是行程 ID 和基本详细信息:
CREATE TABLE Trip(
TripID int NOT NULL AUTO_INCREMENT,
PRIMARY KEY (TripID)
);
将 Trip 和 Leg 详细信息与 TripID 和 LegID 连接起来的 TripLeg 表
CREATE TABLE TripLeg(
LegID int NOT NULL,
TripID int NOT NULL,
PRIMARY KEY (LegID ,TripID)
);
FOREIGN KEY(LegID) REFERENCES Leg(LegID)
FOREIGN KEY(TripID) REFERENCES Trip(TripID)
这将允许您根据城市、单程或总行程进行查询。希望这可以帮助。