From e1e525eaa6fd9ddad12469da9108e535c7bbc69b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?SAEZ=20Th=C3=A9o?= <theo.saez@etu.univ-amu.fr> Date: Mon, 31 Mar 2025 14:20:59 +0200 Subject: [PATCH] =?UTF-8?q?Mise=20a=20jour=20du=20fichier=20SQL=20pour=20l?= =?UTF-8?q?a=20cr=C3=A9ation=20des=20tables?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- BusTP2.sql | 43 +++++++++++++++++++++++++------------------ 1 file changed, 25 insertions(+), 18 deletions(-) diff --git a/BusTP2.sql b/BusTP2.sql index d70e895..b44dad7 100644 --- a/BusTP2.sql +++ b/BusTP2.sql @@ -2,12 +2,13 @@ DROP TABLE VILLES; CREATE TABLE Villes ( - NomV VARCHAR(50) PRIMARY KEY NOT NULL + NomV VARCHAR2(50) PRIMARY KEY NOT NULL ) CREATE TABLE Bus ( NumB INT PRIMARY KEY NOT NULL, - CapacitéB INT Check(CapacitéB > 0) NOT NULL + CapacitéB INT NOT NULL, + CONSTRAINT chk_capacity Check(CapacitéB > 0) ) CREATE TABLE Trajets ( @@ -17,37 +18,43 @@ CREATE TABLE Trajets ( ) CREATE TABLE Etapes ( - NumT INT PRIMARY KEY NOT NULL, + NumT INT NOT NULL, + NomV VARCHAR2(50) NOT NULL, + DateA DATE NOT NULL, + DateD DATE NOT NULL, + PRIMARY KEY (NumT, NomV), 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 + CONSTRAINT chk_duree_arret CHECK(DateD >= DateA + 5/1440) ) CREATE TABLE Tarifs ( - VilleD VARCHAR(50) PRIMARY KEY NOT NULL, + VilleD VARCHAR2(50) NOT NULL, + VilleA VARCHAR2(50) NOT NULL, + Prix NUMBER(10,2) NOT NULL, + PRIMARY KEY (VilleD, VilleA), 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 + CONSTRAINT chk_prix Check(Prix > 0), + CONSTRAINT chk_villes_diff CHECK (VilleA <> VilleD) ) CREATE TABLE Clients ( NumC INT PRIMARY KEY NOT NULL, - NomC VARCHAR(50) NOT NULL, - AdresseC VARCHAR(50) NOT NULL + NomC VARCHAR2(50) NOT NULL, + AdresseC VARCHAR2(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 + VilleD VARCHAR2(50) NOT NULL, + VilleA VARCHAR2(50) NOT NULL, + Nbplaces INT NOT NULL, + FOREIGN KEY (NumC) REFERENCES Clients(NumC), + FOREIGN KEY (NumT, VilleD) REFERENCES Etapes(NumT, NomV), + FOREIGN KEY (NumT, VilleA) REFERENCES Etapes(NumT, NomV), + FOREIGN KEY (VilleD, VilleA) REFERENCES Tarifs(VilleD, VilleA), + CONSTRAINT chk_places CHECK(Nbplaces > 0) ) \ No newline at end of file -- GitLab