私は以下を作成します:
可能な各ロケーションと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)
);
TripIDとLegIDでTripとLegの詳細を結合する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)
これにより、都市、個々の区間、または総旅行に基づいてクエリを実行できます。お役に立てれば。