CREATE TABLE ENSEIGNE
(
EnseigneId INT NOT NULL
, EnseigneNom VARCHAR(32) NOT NULL
, CONSTRAINT ENSEIGNE_PK PRIMARY KEY (EnseigneId)
) ;
CREATE TABLE SOUS_GROUPE
(
EnseigneId INT NOT NULL
, SousGroupeId INT NOT NULL
, SousGroupeNom VARCHAR(32) NOT NULL
, CONSTRAINT SOUS_GROUPE_PK PRIMARY KEY (EnseigneId, SousGroupeId)
, CONSTRAINT SOUS_GROUPE_ENSEIGNE_FK FOREIGN KEY (EnseigneId) REFERENCES ENSEIGNE (EnseigneId)
) ;
CREATE TABLE PROMO
(
PromoId INT NOT NULL
, PromoNom VARCHAR(48) NOT NULL
, PromoDebut DATE NOT NULL DEFAULT '2015-10-01'
, PromoFin DATE NOT NULL DEFAULT '2015-10-15'
, CONSTRAINT PROMO PRIMARY KEY (PromoId)
) ;
CREATE TABLE PROMO_ENSEIGNE
(
PromoId INT NOT NULL
, EnseigneId INT NOT NULL
, CONSTRAINT PROMO_ENSEIGNE_PK PRIMARY KEY (PromoId)
, CONSTRAINT PROMO_ENSEIGNE_PROMO_FK FOREIGN KEY (PromoId) REFERENCES PROMO (PromoId)
, CONSTRAINT PROMO_ENSEIGNE_FK FOREIGN KEY (EnseigneId) REFERENCES ENSEIGNE (EnseigneId)
) ;
CREATE TABLE PROMO_SOUS_GROUPE
(
PromoId INT NOT NULL
, EnseigneId INT NOT NULL
, SousGroupeId INT NOT NULL
, CONSTRAINT PROMO_SOUS_GROUPE_PK PRIMARY KEY (PromoId)
, CONSTRAINT PROMO_SOUS_GROUPE_PROMO_FK FOREIGN KEY (PromoId) REFERENCES PROMO (PromoId)
, CONSTRAINT PROMO_SOUS_GROUPE_FK FOREIGN KEY (EnseigneId, SousGroupeId) REFERENCES SOUS_GROUPE (EnseigneId, SousGroupeId)
) ;
INSERT INTO ENSEIGNE (EnseigneId, EnseigneNom) VALUES
(1, 'enseigne 1'), (2, 'enseigne 2'),(3, 'enseigne 3'),(4, 'enseigne 4')
;
SELECT * FROM ENSEIGNE ;
INSERT INTO SOUS_GROUPE (EnseigneId, SousGroupeId, SousGroupeNom) VALUES
(1, 1, 'enseigne 1, sous-groupe 1'), (1, 2, 'enseigne 1, sous-groupe 2'), (1, 3, 'enseigne 1, sous-groupe 3')
, (2, 1, 'enseigne 2, sous-groupe 1'), (2, 2, 'enseigne 2, sous-groupe 2'), (2, 3, 'enseigne 2, sous-groupe 3')
, (3, 1, 'enseigne 3, sous-groupe 1'), (3, 2, 'enseigne 3, sous-groupe 2'), (3, 3, 'enseigne 3, sous-groupe 3')
, (4, 1, 'enseigne 4, sous-groupe 1'), (4, 2, 'enseigne 4, sous-groupe 2'), (4, 3, 'enseigne 4, sous-groupe 3')
;
SELECT * FROM SOUS_GROUPE ;
INSERT INTO PROMO (PromoId, PromoNom) VALUES
(1, 'promo 1, pour enseigne 1'), (2, 'promo 2, pour sous-groupe 1 de enseigne 3')
, (3, 'promo 3, pour sous-groupe 1 de enseigne 4'), (4, 'promo 4, pour enseigne 1')
, (5, 'promo 5, pour enseigne 1'), (6, 'promo 6, pour sous-groupe 3 de enseigne 1')
, (7, 'promo 7, pour sous-groupe 3 de enseigne 1'), (8, 'promo 8, pour enseigne 3')
, (9, 'promo 9, pour enseigne 2'), (10, 'promo 10, pour sous-groupe 3 de enseigne 3')
, (11, 'promo 11, pour sous-groupe 2 de enseigne 3'), (12, 'promo 12, pour enseigne 2')
, (13, 'promo 13, pour personne !')
;
SELECT * FROM PROMO ;
INSERT INTO PROMO_ENSEIGNE (PromoId, EnseigneId) VALUES
(1, 1), (4, 1), (5, 1), (8, 1), (9, 2), (12, 2)
;
SELECT * FROM PROMO_ENSEIGNE ;
INSERT INTO PROMO_SOUS_GROUPE (PromoId, EnseigneId, SousGroupeId) VALUES
(2, 3, 1), (3, 4, 1), (6, 1, 3), (7, 1, 3), (10, 3, 3), (11, 3, 2)
;
INSERT INTO PROMO_SOUS_GROUPE (PromoId, EnseigneId, SousGroupeId) VALUES
(1, 1, 1) -- délinquant !
;
INSERT INTO PROMO_ENSEIGNE (PromoId, EnseigneId) VALUES
(2, 1) -- délinquant !
;
Partager