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 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133
| CREATE TABLE ENTREPRISE
(
IdEntreprise CHAR(3) NOT NULL,
CONSTRAINT ENTREPRISE_PK PRIMARY KEY (IdEntreprise),
) ;
CREATE TABLE ENT_IMMAT
(
IdEntreprise CHAR(3) NOT NULL,
CONSTRAINT ENT_IMMAT_PK PRIMARY KEY (IdEntreprise),
CONSTRAINT ENT_IMMAT_ENTREPRISE_FK
FOREIGN KEY (IdEntreprise) REFERENCES ENTREPRISE (IdEntreprise)
ON DELETE CASCADE
) ;
CREATE TABLE VENDEUR
(
IdEntreprise CHAR(3) NOT NULL,
CONSTRAINT VENDEUR_PK PRIMARY KEY (IdEntreprise),
CONSTRAINT VENDEUR_ENT_IMMAT_FK
FOREIGN KEY (IdEntreprise) REFERENCES ENT_IMMAT (IdEntreprise)
ON DELETE CASCADE
) ;
CREATE TABLE MAGASIN
(
IdEntreprise CHAR(3) NOT NULL,
IdMagasin INT NOT NULL,
CONSTRAINT MAGASIN_PK PRIMARY KEY (IdEntreprise, IdMagasin),
CONSTRAINT MAGASIN_VENDEUR_FK
FOREIGN KEY (IdEntreprise) REFERENCES VENDEUR (IdEntreprise)
) ;
CREATE TABLE PERSONNE
(
IdPersonne CHAR(3) NOT NULL,
CONSTRAINT PERSONNE_PK PRIMARY KEY (IdPersonne),
) ;
CREATE TABLE EMPLOYE
(
IdEntreprise CHAR(3) NOT NULL,
IdEmploye CHAR(3) NOT NULL,
CONSTRAINT EMPLOYE_PK PRIMARY KEY (IdEntreprise, IdEmploye),
CONSTRAINT EMPLOYE_AK UNIQUE (IdEmploye),
CONSTRAINT EMPLOYE_PERSONNE_FK
FOREIGN KEY (IdEmploye) REFERENCES PERSONNE (IdPersonne)
ON DELETE CASCADE,
CONSTRAINT EMPLOYE_ENTREPRISE_FK
FOREIGN KEY (IdEntreprise) REFERENCES ENTREPRISE (IdEntreprise)
) ;
CREATE TABLE EMPLOYE_MAG
(
IdEntreprise CHAR(3) NOT NULL,
IdEmploye CHAR(3) NOT NULL,
IdMagasin INT NOT NULL,
CONSTRAINT EMPLOYE_MAG_PK PRIMARY KEY (IdEntreprise, IdEmploye),
CONSTRAINT EMPLOYE_MAG_AK UNIQUE (IdEntreprise, IdEmploye, IdMagasin),
CONSTRAINT EMPLOYE_MAG_EMPLOYE_FK
FOREIGN KEY (IdEntreprise, IdEmploye) REFERENCES EMPLOYE (IdEntreprise, IdEmploye)
ON DELETE CASCADE,
CONSTRAINT EMPLOYE_MAG_MAGASIN_FK
FOREIGN KEY (IdEntreprise, IdMagasin) REFERENCES MAGASIN (IdEntreprise, IdMagasin)
) ;
CREATE TABLE DIRECTEUR
(
IdEntreprise CHAR(3) NOT NULL,
IdEmploye CHAR(3) NOT NULL,
IdMagasin INT NOT NULL,
CONSTRAINT DIRECTEUR_PK PRIMARY KEY (IdEntreprise, IdEmploye),
CONSTRAINT DIRECTEUR_AK UNIQUE (IdEntreprise, IdMagasin),
CONSTRAINT DIRECTEUR_EMPLOYE_FK
FOREIGN KEY (IdEntreprise, IdEmploye, IdMagasin) REFERENCES EMPLOYE_MAG (IdEntreprise, IdEmploye, IdMagasin)
ON DELETE CASCADE
) ;
-------------------------------------------------------------------------------------------
INSERT INTO ENTREPRISE (IdEntreprise) VALUES ('e01') ;
INSERT INTO ENTREPRISE (IdEntreprise) VALUES ('e02') ;
INSERT INTO ENTREPRISE (IdEntreprise) VALUES ('e03') ;
INSERT INTO ENTREPRISE (IdEntreprise) VALUES ('e04') ;
INSERT INTO ENTREPRISE (IdEntreprise) VALUES ('e05') ;
INSERT INTO ENT_IMMAT (IdEntreprise) VALUES ('e01') ;
INSERT INTO ENT_IMMAT (IdEntreprise) VALUES ('e02') ;
INSERT INTO ENT_IMMAT (IdEntreprise) VALUES ('e03') ;
INSERT INTO ENT_IMMAT (IdEntreprise) VALUES ('e04') ;
INSERT INTO VENDEUR (IdEntreprise) VALUES ('e01') ;
INSERT INTO VENDEUR (IdEntreprise) VALUES ('e02') ;
INSERT INTO VENDEUR (IdEntreprise) VALUES ('e03') ;
INSERT INTO MAGASIN (IdEntreprise, IdMagasin) VALUES ('e01', 1) ;
INSERT INTO MAGASIN (IdEntreprise, IdMagasin) VALUES ('e01', 2) ;
INSERT INTO MAGASIN (IdEntreprise, IdMagasin) VALUES ('e01', 3) ;
INSERT INTO MAGASIN (IdEntreprise, IdMagasin) VALUES ('e01', 4) ;
INSERT INTO MAGASIN (IdEntreprise, IdMagasin) VALUES ('e02', 1) ;
INSERT INTO MAGASIN (IdEntreprise, IdMagasin) VALUES ('e02', 2) ;
INSERT INTO MAGASIN (IdEntreprise, IdMagasin) VALUES ('e02', 3) ;
INSERT INTO MAGASIN (IdEntreprise, IdMagasin) VALUES ('e03', 1) ;
INSERT INTO MAGASIN (IdEntreprise, IdMagasin) VALUES ('e03', 2) ;
INSERT INTO PERSONNE (IdPersonne) VALUES ('p01') ;
INSERT INTO PERSONNE (IdPersonne) VALUES ('p02') ;
INSERT INTO PERSONNE (IdPersonne) VALUES ('p03') ;
INSERT INTO PERSONNE (IdPersonne) VALUES ('p04') ;
INSERT INTO PERSONNE (IdPersonne) VALUES ('p05') ;
INSERT INTO PERSONNE (IdPersonne) VALUES ('p06') ;
INSERT INTO PERSONNE (IdPersonne) VALUES ('p07') ;
INSERT INTO EMPLOYE (IdEntreprise, IdEmploye) VALUES ('e01', 'p01') ;
INSERT INTO EMPLOYE (IdEntreprise, IdEmploye) VALUES ('e01', 'p02') ;
INSERT INTO EMPLOYE (IdEntreprise, IdEmploye) VALUES ('e01', 'p03') ;
-- INSERT INTO EMPLOYE (IdEntreprise, IdEmploye) VALUES ('e02', 'p01') ; -- viol AK
SELECT '' AS 'EMPLOYE', * FROM EMPLOYE ;
INSERT INTO EMPLOYE_MAG (IdEntreprise, IdEmploye, IdMagasin) VALUES ('e01', 'p01', 1) ;
--INSERT INTO EMPLOYE_MAG (IdEntreprise, IdEmploye, IdMagasin) VALUES ('e01', 'p01', 2) ; -- viol PK
--INSERT INTO EMPLOYE_MAG (IdEntreprise, IdEmploye, IdMagasin) VALUES ('e02', 'p01', 1) ; -- viol FK vers EMPLOYE
INSERT INTO EMPLOYE_MAG (IdEntreprise, IdEmploye, IdMagasin) VALUES ('e01', 'p02', 2) ;
INSERT INTO EMPLOYE_MAG (IdEntreprise, IdEmploye, IdMagasin) VALUES ('e01', 'p03', 2) ;
SELECT '' AS 'EMPLOYE_MAG', * FROM EMPLOYE_MAG ;
INSERT INTO DIRECTEUR (IdEntreprise, IdEmploye, IdMagasin) VALUES ('e01', 'p01', 1) ;
INSERT INTO DIRECTEUR (IdEntreprise, IdEmploye, IdMagasin) VALUES ('e01', 'p02', 2) ;
-- INSERT INTO DIRECTEUR (IdEntreprise, IdEmploye, IdMagasin) VALUES ('e01', 'p03', 2) ; -- viol AK
SELECT '' AS 'DIRECTEUR', * FROM DIRECTEUR ; |
Partager