diff --git a/BusTP2.sql b/BusTP2.sql new file mode 100644 index 0000000000000000000000000000000000000000..d70e895464067b013051297cf634be848a8955ec --- /dev/null +++ b/BusTP2.sql @@ -0,0 +1,53 @@ +DROP TABLE VILLES; + + +CREATE TABLE Villes ( + NomV VARCHAR(50) PRIMARY KEY NOT NULL +) + +CREATE TABLE Bus ( + NumB INT PRIMARY KEY NOT NULL, + CapacitéB INT Check(CapacitéB > 0) NOT NULL +) + +CREATE TABLE Trajets ( + NumT INT PRIMARY KEY NOT NULL, + NumB INT NOT NULL, + FOREIGN KEY (NumB) REFERENCES Bus(NumB) +) + +CREATE TABLE Etapes ( + NumT INT PRIMARY KEY NOT NULL, + FOREIGN KEY (NumT) REFERENCES Trajets(NumT), + NomV VARCHAR(50) PRIMARY KEY NOT NULL, + FOREIGN KEY (NomV) REFERENCES Villes(NomV), + DateA DATE NOT NULL, + DateD DATE NOT NULL +) + +CREATE TABLE Tarifs ( + VilleD VARCHAR(50) PRIMARY KEY NOT NULL, + FOREIGN KEY (VilleD) REFERENCES Villes(NomV), + VilleA VARCHAR(50) PRIMARY KEY NOT NULL, + FOREIGN KEY (VilleA) REFERENCES Villes(NomV), + Prix DECIMAL(10,2) Check(Prix > 0) NOT NULL +) + +CREATE TABLE Clients ( + NumC INT PRIMARY KEY NOT NULL, + NomC VARCHAR(50) NOT NULL, + AdresseC VARCHAR(50) NOT NULL +) + +CREATE TABLE Réservations ( + NumR INT PRIMARY KEY NOT NULL, + NumC INT NOT NULL, + FOREIGN KEY (NumC) REFERENCES Clients(NumC), + NumT INT NOT NULL, + FOREIGN KEY (NumT) REFERENCES Trajets(NumT), + VilleD VARCHAR(50) NOT NULL, + FOREIGN KEY (VilleD) REFERENCES Villes(NomV), + VilleA VARCHAR(50) NOT NULL, + FOREIGN KEY (VilleA) REFERENCES Villes(NomV), + Nbplaces INT CHECK(Nbplaces > 0) NOT NULL +) \ No newline at end of file