diff --git a/BusTP2.sql b/BusTP2.sql
index d70e895464067b013051297cf634be848a8955ec..b44dad72db4d97c76ab4fa440763f805c70804db 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