Непроверенные
CREATE TABLE Location (
ID INT UNSIGNED AUTO_INCREMENT,
Name VARCHAR(50),
PRIMARY KEY (ID)
) ENGINE=INNODB CHARACTER SET utf8
CREATE TABLE Trip (
ID INT UNSIGNED AUTO_INCREMENT,
Name VARCHAR(50),
StartLocation INT UNSIGNED,
EndLocation INT UNSIGNED,
PRIMARY KEY (ID),
CONSTRAINT Constr_Trip_StartLocation_fk
FOREIGN KEY Trip_StartLocation_fk (StartLocation)
REFERENCES Location (ID),
CONSTRAINT Constr_Trip_EndLocation_fk
FOREIGN KEY Trip_EndLocation_fk (EndLocation)
REFERENCES Location (ID)
) ENGINE=INNODB CHARACTER SET utf8
CREATE TABLE TripStopoff (
Trip INT UNSIGNED,
StopoffNumber INT UNSIGNED,
Location INT UNSIGNED,
PRIMARY KEY (Trip, StopoffNumber),
CONSTRAINT Constr_TripStopoff_Trip_fk
FOREIGN KEY TripStopoff_Trip_fk (Trip)
REFERENCES Trip (ID),
CONSTRAINT Constr_TripStopoff_Location_fk
FOREIGN KEY TripStopoff_Location_fk (Location)
REFERENCES Location (ID)
) ENGINE=INNODB CHARACTER SET ascii
INSERT INTO
Location
(ID, Name)
VALUES
(1, 'Chicago'),
(2, 'Manoning'),
(3, 'Jersey City'),
(4, 'Newark'),
(5, 'New York')
INSERT INTO
Trip
(ID, Name, StartLocation, EndLocation)
VALUES
(1, 'My trip', 1, 5)
INSERT INTO
TripStopoff
(Trip, StopoffNumber, Location)
VALUES
(1, 1, 2),
(1, 2, 3),
(1, 3, 4)