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
| CREATE TABLE LOGICIEL
(
LogicielId INT NOT NULL
, LogicielNom VARCHAR(64) NOT NULL
, CONSTRAINT LOGICIEL_PK PRIMARY KEY (LogicielId)
) ;
CREATE TABLE MODULE
(
LogicielId INT NOT NULL
, ModuleId INT NOT NULL
, ModuleNom VARCHAR(64) NOT NULL
, CONSTRAINT MODULE_PK PRIMARY KEY (LogicielId, ModuleId)
, CONSTRAINT MODULE_LOGICIEL_FK FOREIGN KEY (LogicielId)
REFERENCES LOGICIEL (LogicielId) ON DELETE CASCADE
) ;
CREATE TABLE CLIENT
(
ClientId INT NOT NULL
, ClientNom VARCHAR(64) NOT NULL
, CONSTRAINT CLIENT_PK PRIMARY KEY (ClientId)
) ;
CREATE TABLE CONTRAT
(
ContratId INT NOT NULL
, ClientId INT NOT NULL
, LogicielId INT NOT NULL
, LogicielDateInstal DATETIME NOT NULL
, CONSTRAINT CONTRAT_PK PRIMARY KEY (ContratId)
, CONSTRAINT CONTRAT_CLIENT_FK FOREIGN KEY (ClientId)
REFERENCES CLIENT (ClientId)
, CONSTRAINT CONTRAT_LOGICIEL_FK FOREIGN KEY (LogicielId)
REFERENCES LOGICIEL (LogicielId)
) ;
CREATE TABLE CONTRAT_MODULE
(
ContratId INT NOT NULL
, LogicielId INT NOT NULL
, ModuleId INT NOT NULL
, ModuleDateInstal DATETIME NOT NULL
, CONSTRAINT CONTRAT_MODULE_PK PRIMARY KEY (ContratId, LogicielId, ModuleId)
, CONSTRAINT CONTRAT_MODULE_CONTRAT_FK FOREIGN KEY (ContratId)
REFERENCES CONTRAT (ContratId)
, CONSTRAINT CONTRAT_MODULE_MODULE_FK FOREIGN KEY (LogicielId, ModuleId)
REFERENCES MODULE (LogicielId, ModuleId)
) ; |
Partager