Skip to content
Snippets Groups Projects
Commit e1e525ea authored by SAEZ Theo's avatar SAEZ Theo
Browse files

Mise a jour du fichier SQL pour la création des tables

parent 26e27d3e
Branches
No related tags found
No related merge requests found
...@@ -2,12 +2,13 @@ DROP TABLE VILLES; ...@@ -2,12 +2,13 @@ DROP TABLE VILLES;
CREATE TABLE Villes ( CREATE TABLE Villes (
NomV VARCHAR(50) PRIMARY KEY NOT NULL NomV VARCHAR2(50) PRIMARY KEY NOT NULL
) )
CREATE TABLE Bus ( CREATE TABLE Bus (
NumB INT PRIMARY KEY NOT NULL, 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 ( CREATE TABLE Trajets (
...@@ -17,37 +18,43 @@ CREATE TABLE Trajets ( ...@@ -17,37 +18,43 @@ CREATE TABLE Trajets (
) )
CREATE TABLE Etapes ( 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), FOREIGN KEY (NumT) REFERENCES Trajets(NumT),
NomV VARCHAR(50) PRIMARY KEY NOT NULL,
FOREIGN KEY (NomV) REFERENCES Villes(NomV), FOREIGN KEY (NomV) REFERENCES Villes(NomV),
DateA DATE NOT NULL, CONSTRAINT chk_duree_arret CHECK(DateD >= DateA + 5/1440)
DateD DATE NOT NULL
) )
CREATE TABLE Tarifs ( 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), FOREIGN KEY (VilleD) REFERENCES Villes(NomV),
VilleA VARCHAR(50) PRIMARY KEY NOT NULL,
FOREIGN KEY (VilleA) REFERENCES Villes(NomV), 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 ( CREATE TABLE Clients (
NumC INT PRIMARY KEY NOT NULL, NumC INT PRIMARY KEY NOT NULL,
NomC VARCHAR(50) NOT NULL, NomC VARCHAR2(50) NOT NULL,
AdresseC VARCHAR(50) NOT NULL AdresseC VARCHAR2(50) NOT NULL
) )
CREATE TABLE Réservations ( CREATE TABLE Réservations (
NumR INT PRIMARY KEY NOT NULL, NumR INT PRIMARY KEY NOT NULL,
NumC INT NOT NULL, NumC INT NOT NULL,
FOREIGN KEY (NumC) REFERENCES Clients(NumC),
NumT INT NOT NULL, NumT INT NOT NULL,
FOREIGN KEY (NumT) REFERENCES Trajets(NumT), VilleD VARCHAR2(50) NOT NULL,
VilleD VARCHAR(50) NOT NULL, VilleA VARCHAR2(50) NOT NULL,
FOREIGN KEY (VilleD) REFERENCES Villes(NomV), Nbplaces INT NOT NULL,
VilleA VARCHAR(50) NOT NULL, FOREIGN KEY (NumC) REFERENCES Clients(NumC),
FOREIGN KEY (VilleA) REFERENCES Villes(NomV), FOREIGN KEY (NumT, VilleD) REFERENCES Etapes(NumT, NomV),
Nbplaces INT CHECK(Nbplaces > 0) NOT NULL 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
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment