1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92
| /*==============================================================*/
/* Table : Client */
/*==============================================================*/
CREATE TABLE Client (
ClientId INT NOT NULL,
ClientNom VARCHAR(48) NOT NULL,
ClientSiret CHAR(14) NOT NULL,
CONSTRAINT Client_PK PRIMARY KEY (ClientId),
CONSTRAINT Client_AK1 UNIQUE (ClientSiret)
) ;
/*==============================================================*/
/* Table : Camion */
/*==============================================================*/
CREATE TABLE Camion (
CamionId INT NOT NULL,
CamionImmat VARCHAR(12) NOT NULL,
CamionStatut CHAR(2) NOT NULL,
CONSTRAINT Camion_PK PRIMARY KEY (CamionId),
CONSTRAINT Camion_AK1 UNIQUE (CamionImmat)
) ;
/*==============================================================*/
/* Table : Article */
/*==============================================================*/
CREATE TABLE Article (
ArticleId INT NOT NULL,
ArticleNom VARCHAR(48) NOT NULL,
CONSTRAINT Article_PK PRIMARY KEY (ArticleId)
) ;
/*==============================================================*/
/* Table : Commande */
/*==============================================================*/
CREATE TABLE Commande (
ClientId INT NOT NULL,
CommandeId SMALLINT NOT NULL,
CommandeNo CHAR(12) NOT NULL,
CommandeDate CHAR(10) NOT NULL,
CommandeStatut CHAR(2) NOT NULL,
CONSTRAINT Commande_PK PRIMARY KEY (ClientId, CommandeId),
CONSTRAINT Commande_AK1 UNIQUE (CommandeNo),
CONSTRAINT Commande_Client_FK FOREIGN KEY (ClientId)
REFERENCES Client (ClientId)
) ;
/*==============================================================*/
/* Table : LigneCommande */
/*==============================================================*/
CREATE TABLE LigneCommande (
ClientId INT NOT NULL,
CommandeId SMALLINT NOT NULL,
LigneCommandeId SMALLINT NOT NULL,
ArticleId INT NOT NULL,
Quantite INT NOT NULL,
CONSTRAINT LigneCommande_PK PRIMARY KEY (ClientId, CommandeId, LigneCommandeId),
CONSTRAINT LigneCommande_Commande_FK FOREIGN KEY (ClientId, CommandeId)
REFERENCES Commande (ClientId, CommandeId)
ON DELETE CASCADE,
CONSTRAINT LigneCommande_Article_FK FOREIGN KEY (ArticleId)
REFERENCES Article (ArticleId)
) ;
/*==============================================================*/
/* Table : Engagement */
/*==============================================================*/
CREATE TABLE Engagement (
ClientId INT NOT NULL,
CommandeId SMALLINT NOT NULL,
LigneCommandeId SMALLINT NOT NULL,
EngagementId SMALLINT NOT NULL,
EngagementType CHAR(2) NOT NULL,
EngagementQte INT NOT NULL,
CONSTRAINT Engagement_PK PRIMARY KEY (ClientId, CommandeId, LigneCommandeId, EngagementId),
CONSTRAINT Engagement_LigneCommande_FK FOREIGN KEY (ClientId, CommandeId, LigneCommandeId)
REFERENCES Lignecommande (ClientId, CommandeId, LigneCommandeId)
ON DELETE CASCADE
) ;
/*==============================================================*/
/* Table : Livraison */
/*==============================================================*/
CREATE TABLE Livraison (
ClientId INT NOT NULL,
CommandeId SMALLINT NOT NULL,
LigneCommandeId SMALLINT NOT NULL,
EngagementId SMALLINT NOT NULL,
LivraisonId SMALLINT NOT NULL,
CamionId INT NOT NULL,
LivraisonDate CHAR(10) NOT NULL,
LivraisonStatut CHAR(2) NOT NULL,
CONSTRAINT Livraison_PK PRIMARY KEY (ClientId, CommandeId, LigneCommandeId, EngagementId, LivraisonId),
CONSTRAINT Livraison_Engagement_FK FOREIGN KEY (ClientId, CommandeId, LigneCommandeId, EngagementId)
REFERENCES Engagement (ClientId, CommandeId, LigneCommandeId, EngagementId)
ON DELETE CASCADE,
CONSTRAINT Livraison_Camion_FK FOREIGN KEY (CamionId)
REFERENCES Camion (CamionId)
) ; |
Partager