Commit 1beb0fb3 authored by David Surville's avatar David Surville
Browse files

Déplacement du périmètre associé à un utilisateur et un rôle dans une entité...

Déplacement du périmètre associé à un utilisateur et un rôle dans une entité spécifique "UserRolePerimetre" au lieu de "UserRole" :
- un rôle n'est défini qu'une seule fois pour un utilisateur dans l'entité "UserRole"
- possibilité de définir plusieurs périmètres pour un même rôle
parent caf0e36f
Loading
Loading
Loading
Loading
+24 −6
Changes for data/sql/schema_oracle.sql: 24 added lines, 6 removed lines.
Original line number Diff line number Diff line
@@ -122,14 +122,10 @@ CREATE TABLE UNICAEN_UTILISATEUR_ROLE_LINKER (
  ID                      NUMBER(*,0) NOT NULL,
  UTILISATEUR_ID          NUMBER(*,0) NOT NULL,
  ROLE_ID                 NUMBER(*,0) NOT NULL,
  PERIMETRE_CATEGORIE_ID  NUMBER(*,0),
  PERIMETRE_ID            NUMBER(*,0),
  CONSTRAINT PK_UNICAEN_UTILISATEUR_ROLE_LINKER PRIMARY KEY (ID),
  CONSTRAINT UN_UNICAEN_UTILISATEUR_ROLE_LINKER UNIQUE (UTILISATEUR_ID, ROLE_ID, PERIMETRE_CATEGORIE_ID),
  CONSTRAINT UN_UNICAEN_UTILISATEUR_ROLE_LINKER UNIQUE (UTILISATEUR_ID, ROLE_ID),
  CONSTRAINT FK_UNICAEN_UTILISATEUR_ROLE_LINKER_UTILISATEUR FOREIGN KEY (UTILISATEUR_ID) REFERENCES UNICAEN_UTILISATEUR (ID) DEFERRABLE INITIALLY IMMEDIATE,
  CONSTRAINT FK_UNICAEN_UTILISATEUR_ROLE_LINKER_ROLE FOREIGN KEY (ROLE_ID) REFERENCES UNICAEN_ROLE (ID) DEFERRABLE INITIALLY IMMEDIATE,
  CONSTRAINT FK_UNICAEN_UTILISATEUR_ROLE_LINKER_PERIMETRE_CATEGORIE FOREIGN KEY (PERIMETRE_CATEGORIE_ID) REFERENCES UNICAEN_PERIMETRE_CATEGORIE (ID) DEFERRABLE INITIALLY IMMEDIATE,
  CONSTRAINT FK_UNICAEN_UTILISATEUR_ROLE_LINKER_PERIMETRE FOREIGN KEY (PERIMETRE_ID) REFERENCES UNICAEN_PERIMETRE (ID) DEFERRABLE INITIALLY IMMEDIATE
  CONSTRAINT FK_UNICAEN_UTILISATEUR_ROLE_LINKER_ROLE FOREIGN KEY (ROLE_ID) REFERENCES UNICAEN_ROLE (ID) DEFERRABLE INITIALLY IMMEDIATE
);

CREATE INDEX IX_UNICAEN_UTILISATEUR_ROLE_LINKER_UTILISATEUR ON UNICAEN_UTILISATEUR_ROLE_LINKER (UTILISATEUR_ID);
@@ -138,6 +134,28 @@ CREATE INDEX IX_UNICAEN_UTILISATEUR_ROLE_LINKER_PERIMETRE_CATEGORIE ON UNICAEN_U
CREATE INDEX IX_UNICAEN_UTILISATEUR_ROLE_LINKER_PERIMETRE ON UNICAEN_UTILISATEUR_ROLE_LINKER (PERIMETRE_ID);


-- -----------------------------------------------------
-- TABLE UNICAEN_UTILISATEUR_ROLE_PERIMETRE_LINKER
-- -----------------------------------------------------
CREATE SEQUENCE UNICAEN_UTILISATEUR_ROLE_PERIMETRE_LINKER_ID_SEQ NOCYCLE START WITH 1 INCREMENT BY 1 MINVALUE 0;

CREATE TABLE UNICAEN_UTILISATEUR_ROLE_PERIMETRE_LINKER (
  ID                      NUMBER(*,0) NOT NULL,
  UTILISATEUR_ROLE_ID     NUMBER(*,0) NOT NULL,
  PERIMETRE_CATEGORIE_ID  NUMBER(*,0) NOT NULL,
  PERIMETRE_ID            NUMBER(*,0) NOT NULL,
  CONSTRAINT PK_UNICAEN_UTILISATEUR_ROLE_PERIMETRE_LINKER PRIMARY KEY (ID),
  CONSTRAINT UN_UNICAEN_UTILISATEUR_ROLE_PERIMETRE_LINKER UNIQUE (UTILISATEUR_ROLE_ID, PERIMETRE_CATEGORIE_ID, PERIMETRE_ID),
  CONSTRAINT FK_UNICAEN_UTILISATEUR_ROLE_PERIMETRE_LINKER_ROLE FOREIGN KEY (UTILISATEUR_ROLE_ID) REFERENCES UNICAEN_UTILISATEUR_ROLE_LINKER (ID) DEFERRABLE INITIALLY IMMEDIATE,
  CONSTRAINT FK_UNICAEN_UTILISATEUR_ROLE_PERIMETRE_LINKER_PERIMETRE_CATEG FOREIGN KEY (PERIMETRE_CATEGORIE_ID) REFERENCES UNICAEN_PERIMETRE_CATEGORIE (ID) DEFERRABLE INITIALLY IMMEDIATE,
  CONSTRAINT FK_UNICAEN_UTILISATEUR_ROLE_PERIMETRE_LINKER_PERIMETRE FOREIGN KEY (PERIMETRE_ID) REFERENCES UNICAEN_PERIMETRE (ID) DEFERRABLE INITIALLY IMMEDIATE
);

CREATE INDEX IX_UNICAEN_UTILISATEUR_ROLE_PERIMETRE_LINKER_ROLE ON UNICAEN_UTILISATEUR_ROLE_PERIMETRE_LINKER (UTILISATEUR_ROLE_ID);
CREATE INDEX IX_UNICAEN_UTILISATEUR_ROLE_PERIMETRE_LINKER_PERIMETRE_CATEG ON UNICAEN_UTILISATEUR_ROLE_PERIMETRE_LINKER (PERIMETRE_CATEGORIE_ID);
CREATE INDEX IX_UNICAEN_UTILISATEUR_ROLE_PERIMETRE_LINKER_PERIMETRE ON UNICAEN_UTILISATEUR_ROLE_PERIMETRE_LINKER (PERIMETRE_ID);


-- -----------------------------------------------------
-- TABLE UNICAEN_ROLE_PERIMETRE_LINKER
-- -----------------------------------------------------
+20 −0
Changes for data/sql/schema_postgresql.sql: 20 added lines, 0 removed lines.
Original line number Diff line number Diff line
@@ -121,6 +121,26 @@ CREATE INDEX IX_UNICAEN_UTILISATEUR_ROLE_LINKER_PERIMETRE_CATEGORIE ON UNICAEN_U
CREATE INDEX IX_UNICAEN_UTILISATEUR_ROLE_LINKER_PERIMETRE ON UNICAEN_UTILISATEUR_ROLE_LINKER (PERIMETRE_ID);


-- -----------------------------------------------------
-- TABLE UNICAEN_UTILISATEUR_ROLE_PERIMETRE_LINKER
-- -----------------------------------------------------
CREATE TABLE UNICAEN_UTILISATEUR_ROLE_PERIMETRE_LINKER (
  ID                      SERIAL  PRIMARY KEY,
  UTILISATEUR_ROLE_ID     INTEGER NOT NULL,
  PERIMETRE_CATEGORIE_ID  INTEGER NOT NULL,
  PERIMETRE_ID            INTEGER NOT NULL,
  CONSTRAINT PK_UNICAEN_UTILISATEUR_ROLE_PERIMETRE_LINKER PRIMARY KEY (ID),
  CONSTRAINT UN_UNICAEN_UTILISATEUR_ROLE_PERIMETRE_LINKER UNIQUE (UTILISATEUR_ROLE_ID, PERIMETRE_CATEGORIE_ID, PERIMETRE_ID),
  CONSTRAINT FK_UNICAEN_UTILISATEUR_ROLE_PERIMETRE_LINKER_ROLE FOREIGN KEY (UTILISATEUR_ROLE_ID) REFERENCES UNICAEN_UTILISATEUR_ROLE_LINKER (ID) DEFERRABLE INITIALLY IMMEDIATE,
  CONSTRAINT FK_UNICAEN_UTILISATEUR_ROLE_PERIMETRE_LINKER_PERIMETRE_CATEG FOREIGN KEY (PERIMETRE_CATEGORIE_ID) REFERENCES UNICAEN_PERIMETRE_CATEGORIE (ID) DEFERRABLE INITIALLY IMMEDIATE,
  CONSTRAINT FK_UNICAEN_UTILISATEUR_ROLE_PERIMETRE_LINKER_PERIMETRE FOREIGN KEY (PERIMETRE_ID) REFERENCES UNICAEN_PERIMETRE (ID) DEFERRABLE INITIALLY IMMEDIATE
);

CREATE INDEX IX_UNICAEN_UTILISATEUR_ROLE_PERIMETRE_LINKER_ROLE ON UNICAEN_UTILISATEUR_ROLE_PERIMETRE_LINKER (UTILISATEUR_ROLE_ID);
CREATE INDEX IX_UNICAEN_UTILISATEUR_ROLE_PERIMETRE_LINKER_PERIMETRE_CATEG ON UNICAEN_UTILISATEUR_ROLE_PERIMETRE_LINKER (PERIMETRE_CATEGORIE_ID);
CREATE INDEX IX_UNICAEN_UTILISATEUR_ROLE_PERIMETRE_LINKER_PERIMETRE ON UNICAEN_UTILISATEUR_ROLE_PERIMETRE_LINKER (PERIMETRE_ID);


-- -----------------------------------------------------
-- TABLE UNICAEN_ROLE_PERIMETRE_LINKER
-- -----------------------------------------------------