Commit de68fa53 authored by David Surville's avatar David Surville
Browse files

Revue des fichiers Sql de création des tables

parent 87fd38df
Loading
Loading
Loading
Loading
Loading
+0 −157
Original line number Diff line number Diff line
-- -----------------------------------------------------
-- TABLE UNICAEN_UTILISATEUR_ROLE
-- -----------------------------------------------------
RENAME <SEQ_NAME> TO UNICAEN_UTILISATEUR_ROLE_ID_SEQ;


-- -----------------------------------------------------
-- TABLE UNICAEN_UTILISATEUR_USER
-- -----------------------------------------------------
RENAME <SEQ_NAME> TO UNICAEN_UTILISATEUR_USER_ID_SEQ;


-- -----------------------------------------------------
-- TABLE UNICAEN_UTILISATEUR_USER_ROLE_LINKER
-- -----------------------------------------------------
CREATE SEQUENCE UNICAEN_UTILISATEUR_USER_ROLE_LINKER_ID_SEQ NOCYCLE START WITH 1 INCREMENT BY 1 MINVALUE 0;

CREATE TABLE UNICAEN_UTILISATEUR_USER_ROLE_LINKER (
  ID        NUMBER(*,0) NOT NULL,
  USER_ID   NUMBER(*,0) NOT NULL,
  ROLE_ID   NUMBER(*,0) NOT NULL
);

INSERT INTO UNICAEN_UTILISATEUR_USER_ROLE_LINKER (
  ID,
  USER_ID,
  ROLE_ID
)
WITH tmp AS (
  SELECT * FROM UNICAEN_UTILISATEUR_ROLE_LINKER
)
SELECT
  UNICAEN_UTILISATEUR_USER_ROLE_LINKER_ID_SEQ.nextval,
  tmp.USER_ID,
  tmp.ROLE_ID
FROM tmp;

DROP TABLE UNICAEN_UTILISATEUR_ROLE_LINKER;
ALTER TABLE UNICAEN_UTILISATEUR_USER_ROLE_LINKER ADD CONSTRAINT PK_UNICAEN_USER_ROLE_LINKER PRIMARY KEY (ID);
ALTER TABLE UNICAEN_UTILISATEUR_USER_ROLE_LINKER ADD CONSTRAINT UN_UNICAEN_USER_ROLE_LINKER UNIQUE (USER_ID, ROLE_ID);
ALTER TABLE UNICAEN_UTILISATEUR_USER_ROLE_LINKER ADD CONSTRAINT FK_UNICAEN_USER_ROLE_LINKER_USER FOREIGN KEY (USER_ID) REFERENCES UNICAEN_UTILISATEUR_USER (ID) DEFERRABLE INITIALLY IMMEDIATE;
ALTER TABLE UNICAEN_UTILISATEUR_USER_ROLE_LINKER ADD CONSTRAINT FK_UNICAEN_USER_ROLE_LINKER_ROLE FOREIGN KEY (ROLE_ID) REFERENCES UNICAEN_UTILISATEUR_ROLE (ID) DEFERRABLE INITIALLY IMMEDIATE;
CREATE INDEX IX_UNICAEN_USER_ROLE_LINKER_USER ON UNICAEN_UTILISATEUR_USER_ROLE_LINKER (USER_ID);
CREATE INDEX IX_UNICAEN_USER_ROLE_LINKER_ROLE ON UNICAEN_UTILISATEUR_USER_ROLE_LINKER (ROLE_ID);


-- -----------------------------------------------------
-- TABLE UNICAEN_PRIVILEGE_PRIVILEGE_CATEGORIE
-- -----------------------------------------------------
RENAME <SEQ_NAME> TO UNICAEN_PRIVILEGE_PRIVILEGE_CATEGORIE_ID_SEQ;
RENAME UNICAEN_PRIVILEGE_CATEGORIE TO UNICAEN_PRIVILEGE_PRIVILEGE_CATEGORIE;


-- -----------------------------------------------------
-- TABLE UNICAEN_PRIVILEGE_PRIVILEGE
-- -----------------------------------------------------
RENAME <SEQ_NAME> TO UNICAEN_PRIVILEGE_PRIVILEGE_ID_SEQ;


-- -----------------------------------------------------
-- TABLE UNICAEN_PRIVILEGE_PERIMETRE_CATEGORIE
-- -----------------------------------------------------
CREATE SEQUENCE UNICAEN_PRIVILEGE_PERIMETRE_CATEGORIE_ID_SEQ NOCYCLE START WITH 1 INCREMENT BY 1 MINVALUE 0;

CREATE TABLE UNICAEN_PRIVILEGE_PERIMETRE_CATEGORIE (
  ID          NUMBER(*,0)         NOT NULL,
  CODE        VARCHAR2(150 CHAR)  NOT NULL,
  LIBELLE     VARCHAR2(255 CHAR)  NOT NULL,
  DESCRIPTION VARCHAR2(1024 CHAR) NULL,
  ORDRE       INT                 DEFAULT 0,
  CONSTRAINT PK_UNICAEN_PERIMETRE_CATEGORIE PRIMARY KEY (ID),
  CONSTRAINT UN_UNICAEN_PERIMETRE_CATEGORIE_CODE UNIQUE (CODE)
);


-- -----------------------------------------------------
-- TABLE UNICAEN_PRIVILEGE_PERIMETRE
-- -----------------------------------------------------
CREATE SEQUENCE UNICAEN_PRIVILEGE_PERIMETRE_ID_SEQ NOCYCLE START WITH 1 INCREMENT BY 1 MINVALUE 0;

CREATE TABLE UNICAEN_PRIVILEGE_PERIMETRE (
  ID            NUMBER(*,0)         NOT NULL,
  CATEGORIE_ID  NUMBER(*,0)         NOT NULL,
  CODE          VARCHAR2(150 CHAR)  NOT NULL,
  LIBELLE       VARCHAR2(255 CHAR)  NOT NULL,
  DESCRIPTION   VARCHAR2(1024 CHAR) NULL,
  ORDRE         INT                 DEFAULT 0,
  CONSTRAINT PK_UNICAEN_PERIMETRE PRIMARY KEY (ID),
  CONSTRAINT UN_UNICAEN_PERIMETRE_CODE UNIQUE (CATEGORIE_ID, CODE),
  CONSTRAINT FK_UNICAEN_PERIMETRE_CATEGORIE FOREIGN KEY (CATEGORIE_ID) REFERENCES UNICAEN_PRIVILEGE_PERIMETRE_CATEGORIE (ID) DEFERRABLE INITIALLY IMMEDIATE
);

CREATE INDEX IX_UNICAEN_PERIMETRE_CATEGORIE ON UNICAEN_PRIVILEGE_PERIMETRE (CATEGORIE_ID);


-- -----------------------------------------------------
-- TABLE UNICAEN_PRIVILEGE_PERIMETRE_USER_ROLE_LINKER
-- -----------------------------------------------------
CREATE SEQUENCE UNICAEN_PRIVILEGE_PERIMETRE_USER_ROLE_LINKER_ID_SEQ NOCYCLE START WITH 1 INCREMENT BY 1 MINVALUE 0;

CREATE TABLE UNICAEN_PRIVILEGE_PERIMETRE_USER_ROLE_LINKER (
  ID            NUMBER(*,0) NOT NULL,
  PERIMETRE_ID  NUMBER(*,0) NOT NULL,
  USER_ROLE_ID  NUMBER(*,0) NOT NULL,
  CONSTRAINT PK_UNICAEN_PERIMETRE_USER_ROLE_LINKER PRIMARY KEY (ID),
  CONSTRAINT UN_UNICAEN_PERIMETRE_USER_ROLE_LINKER UNIQUE (PERIMETRE_ID, USER_ROLE_ID),
  CONSTRAINT FK_UNICAEN_PERIMETRE_USER_ROLE_LINKER_PERIMETRE FOREIGN KEY (PERIMETRE_ID) REFERENCES UNICAEN_PRIVILEGE_PERIMETRE (ID) DEFERRABLE INITIALLY IMMEDIATE,
  CONSTRAINT FK_UNICAEN_PERIMETRE_USER_ROLE_LINKER_USER_ROLE FOREIGN KEY (USER_ROLE_ID) REFERENCES UNICAEN_UTILISATEUR_USER_ROLE_LINKER (ID) DEFERRABLE INITIALLY IMMEDIATE
);

CREATE INDEX IX_UNICAEN_PERIMETRE_USER_ROLE_LINKER_PERIMETRE ON UNICAEN_PRIVILEGE_PERIMETRE_USER_ROLE_LINKER (PERIMETRE_ID);
CREATE INDEX IX_UNICAEN_PERIMETRE_USER_ROLE_LINKER_USER_ROLE ON UNICAEN_PRIVILEGE_PERIMETRE_USER_ROLE_LINKER (USER_ROLE_ID);


-- -----------------------------------------------------
-- TABLE UNICAEN_PRIVILEGE_PERIMETRE_CATEGORIE_ROLE_LINKER
-- -----------------------------------------------------
CREATE TABLE UNICAEN_PRIVILEGE_PERIMETRE_CATEGORIE_ROLE_LINKER (
  PERIMETRE_CATEGORIE_ID  NUMBER(*, 0) NOT NULL,
  ROLE_ID                 NUMBER(*, 0) NOT NULL,
  CONSTRAINT PK_UNICAEN_PERIMETRE_CATEGORIE_ROLE_LINKER PRIMARY KEY (PERIMETRE_CATEGORIE_ID, ROLE_ID),
  CONSTRAINT FK_UNICAEN_PERIMETRE_CATEGORIE_ROLE_LINKER_PERIMETRE_CATEG FOREIGN KEY (PERIMETRE_CATEGORIE_ID) REFERENCES UNICAEN_PRIVILEGE_PERIMETRE_CATEGORIE (ID) DEFERRABLE INITIALLY IMMEDIATE,
  CONSTRAINT FK_UNICAEN_PERIMETRE_CATEGORIE_ROLE_LINKER_ROLE FOREIGN KEY (ROLE_ID) REFERENCES UNICAEN_UTILISATEUR_ROLE (ID) DEFERRABLE INITIALLY IMMEDIATE
);

CREATE INDEX IX_UNICAEN_PERIMETRE_CATEGORIE_ROLE_LINKER_PERIMETRE_CATEG ON UNICAEN_PRIVILEGE_PERIMETRE_CATEGORIE_ROLE_LINKER (PERIMETRE_CATEGORIE_ID);
CREATE INDEX IX_UNICAEN_PERIMETRE_CATEGORIE_ROLE_LINKER_ROLE ON UNICAEN_PRIVILEGE_PERIMETRE_CATEGORIE_ROLE_LINKER (ROLE_ID);


-- DATA

INSERT INTO UTILISATEUR_PRIVILEGE_CATEGORIE (ID, CODE, LIBELLE, NAMESPACE, ORDRE)
WITH tmp AS (
  SELECT  1, 'perimetre'  c, 'Gestion des périmètres' l, 'UnicaenPrivilege\Provider\Privilege'  n, 4  o FROM dual
)
SELECT
  UTILISATEUR_PRIVILEGE_CATEGORIE_ID_SEQ.nextval,
  tmp.c,
  tmp.l,
  tmp.n,
  tmp.o
FROM tmp;

INSERT INTO UTILISATEUR_PRIVILEGE (ID, CATEGORIE_ID, CODE, LIBELLE, ORDRE)
WITH tmp AS (
  SELECT 1, 1 ca, 'consulter' c, 'Consulter les périmètres' l, 1  o FROM dual UNION
  SELECT 2, 1 ca, 'attribuer' c, 'Attribuer un périmètre'   l, 2  o FROM dual UNION
  SELECT 3, 1 ca, 'editer'    c, 'Éditer un périmètre'      l, 3  o FROM dual UNION
  SELECT 4, 1 ca, 'supprimer' c, 'Supprimer un périmètre'   l, 4  o FROM dual
)
SELECT
  UTILISATEUR_PRIVILEGE_ID_SEQ.nextval,
  UTILISATEUR_PRIVILEGE_CATEGORIE_ID_SEQ.currval,
  tmp.c,
  tmp.l,
  tmp.o
FROM tmp;
 No newline at end of file
+0 −135
Original line number Diff line number Diff line
-- -----------------------------------------------------
-- TABLE UNICAEN_UTILISATEUR_ROLE
-- -----------------------------------------------------
ALTER SEQUENCE <SEQ_NAME> RENAME TO UNICAEN_UTILISATEUR_ROLE_ID_SEQ;


-- -----------------------------------------------------
-- TABLE UNICAEN_UTILISATEUR_USER
-- -----------------------------------------------------
ALTER SEQUENCE <SEQ_NAME> RENAME TO UNICAEN_UTILISATEUR_USER_ID_SEQ;


-- -----------------------------------------------------
-- TABLE UNICAEN_UTILISATEUR_USER_ROLE_LINKER
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS UNICAEN_UTILISATEUR_USER_ROLE_LINKER (
  ID               SERIAL  PRIMARY KEY,
  USER_ID          INTEGER NOT NULL,
  ROLE_ID          INTEGER NOT NULL
);

WITH url(u, r) AS (
  SELECT * FROM UNICAEN_UTILISATEUR_ROLE_LINKER
)
INSERT INTO UNICAEN_UTILISATEUR_USER_ROLE_LINKER (USER_ID, ROLE_ID)
SELECT url.u, url.r FROM url;

DROP TABLE UNICAEN_UTILISATEUR_ROLE_LINKER;
ALTER TABLE UNICAEN_UTILISATEUR_USER_ROLE_LINKER ADD CONSTRAINT FK_UNICAEN_USER_ROLE_LINKER_USER FOREIGN KEY (USER_ID) REFERENCES UNICAEN_UTILISATEUR_USER (ID) DEFERRABLE INITIALLY IMMEDIATE;
ALTER TABLE UNICAEN_UTILISATEUR_USER_ROLE_LINKER ADD CONSTRAINT FK_UNICAEN_USER_ROLE_LINKER_ROLE FOREIGN KEY (ROLE_ID) REFERENCES UNICAEN_UTILISATEUR_ROLE (ID) DEFERRABLE INITIALLY IMMEDIATE;
CREATE UNIQUE INDEX UN_UNICAEN_USER_ROLE_LINKER ON UNICAEN_UTILISATEUR_USER_ROLE_LINKER(USER_ID, ROLE_ID);
CREATE INDEX IX_UNICAEN_USER_ROLE_LINKER_USER ON UNICAEN_UTILISATEUR_USER_ROLE_LINKER (USER_ID);
CREATE INDEX IX_UNICAEN_USER_ROLE_LINKER_ROLE ON UNICAEN_UTILISATEUR_USER_ROLE_LINKER (ROLE_ID);


-- -----------------------------------------------------
-- TABLE UNICAEN_PRIVILEGE_PRIVILEGE_CATEGORIE
-- -----------------------------------------------------
ALTER SEQUENCE <SEQ_NAME> RENAME TO UNICAEN_PRIVILEGE_PRIVILEGE_CATEGORIE_ID_SEQ;
ALTER TABLE UNICAEN_PRIVILEGE_CATEGORIE RENAME TO UNICAEN_PRIVILEGE_PRIVILEGE_CATEGORIE;


-- -----------------------------------------------------
-- TABLE UNICAEN_PRIVILEGE_PRIVILEGE
-- -----------------------------------------------------
ALTER SEQUENCE <SEQ_NAME> RENAME TO UNICAEN_PRIVILEGE_PRIVILEGE_ID_SEQ;


-- -----------------------------------------------------
-- TABLE UNICAEN_PRIVILEGE_PERIMETRE_CATEGORIE
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS UNICAEN_PRIVILEGE_PERIMETRE_CATEGORIE (
  ID          SERIAL            PRIMARY KEY,
  CODE        VARCHAR(150)     NOT NULL,
  LIBELLE     VARCHAR(255)     NOT NULL,
  DESCRIPTION VARCHAR(1024)    NULL,
  ORDRE       INTEGER           DEFAULT 0
);

CREATE UNIQUE INDEX UN_UNICAEN_PERIMETRE_CATEGORIE_CODE ON UNICAEN_PRIVILEGE_PERIMETRE_CATEGORIE (CODE);


-- -----------------------------------------------------
-- TABLE UNICAEN_PRIVILEGE_PERIMETRE
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS UNICAEN_PRIVILEGE_PERIMETRE (
  ID            SERIAL          PRIMARY KEY,
  CATEGORIE_ID  INTEGER         NOT NULL,
  CODE          VARCHAR(150)   NOT NULL,
  LIBELLE       VARCHAR(255)   NOT NULL,
  DESCRIPTION   VARCHAR(1024)  NULL,
  ORDRE         INTEGER         DEFAULT 0,
  CONSTRAINT FK_UNICAEN_PERIMETRE_CATEGORIE FOREIGN KEY (CATEGORIE_ID) REFERENCES UNICAEN_PRIVILEGE_PERIMETRE_CATEGORIE (ID) DEFERRABLE INITIALLY IMMEDIATE
);

CREATE UNIQUE INDEX UN_UNICAEN_PERIMETRE_CODE ON UNICAEN_PRIVILEGE_PERIMETRE(CATEGORIE_ID, CODE);
CREATE INDEX IX_UNICAEN_PERIMETRE_CATEGORIE ON UNICAEN_PRIVILEGE_PERIMETRE(CATEGORIE_ID);


-- -----------------------------------------------------
-- TABLE UNICAEN_PRIVILEGE_PERIMETRE_USER_ROLE_LINKER
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS UNICAEN_PRIVILEGE_PERIMETRE_USER_ROLE_LINKER (
  ID              SERIAL  PRIMARY KEY,
  PERIMETRE_ID    INTEGER NOT NULL,
  USER_ROLE_ID    INTEGER NOT NULL,
  CONSTRAINT FK_UNICAEN_PERIMETRE_USER_ROLE_LINKER_PERIMETRE FOREIGN KEY (PERIMETRE_ID) REFERENCES UNICAEN_PRIVILEGE_PERIMETRE (ID) DEFERRABLE INITIALLY IMMEDIATE,
  CONSTRAINT FK_UNICAEN_PERIMETRE_USER_ROLE_LINKER_USER_ROLE FOREIGN KEY (USER_ROLE_ID) REFERENCES UNICAEN_UTILISATEUR_USER_ROLE_LINKER (ID) DEFERRABLE INITIALLY IMMEDIATE
);

CREATE UNIQUE INDEX UN_UNICAEN_PERIMETRE_USER_ROLE_LINKER ON UNICAEN_PRIVILEGE_PERIMETRE_USER_ROLE_LINKER(PERIMETRE_ID, USER_ROLE_ID);
CREATE INDEX IX_UNICAEN_PERIMETRE_USER_ROLE_LINKER_PERIMETRE ON UNICAEN_PRIVILEGE_PERIMETRE_USER_ROLE_LINKER (PERIMETRE_ID);
CREATE INDEX IX_UNICAEN_PERIMETRE_USER_ROLE_LINKER_USER_ROLE ON UNICAEN_PRIVILEGE_PERIMETRE_USER_ROLE_LINKER (USER_ROLE_ID);


-- -----------------------------------------------------
-- TABLE UNICAEN_PRIVILEGE_PERIMETRE_CATEGORIE_ROLE_LINKER
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS UNICAEN_PRIVILEGE_PERIMETRE_CATEGORIE_ROLE_LINKER (
  PERIMETRE_CATEGORIE_ID  INTEGER NOT NULL,
  ROLE_ID                 INTEGER NOT NULL,
  CONSTRAINT PK_UNICAEN_PERIMETRE_CATEGORIE_ROLE_LINKER PRIMARY KEY (PERIMETRE_CATEGORIE_ID, ROLE_ID),
  CONSTRAINT FK_UNICAEN_PERIMETRE_CATEGORIE_ROLE_LINKER_PERIMETRE_CATEG FOREIGN KEY (PERIMETRE_CATEGORIE_ID) REFERENCES UNICAEN_PRIVILEGE_PERIMETRE_CATEGORIE (ID) DEFERRABLE INITIALLY IMMEDIATE,
  CONSTRAINT FK_UNICAEN_PERIMETRE_CATEGORIE_ROLE_LINKER_ROLE FOREIGN KEY (ROLE_ID) REFERENCES UNICAEN_UTILISATEUR_ROLE (ID) DEFERRABLE INITIALLY IMMEDIATE
);

CREATE INDEX IX_UNICAEN_PERIMETRE_CATEGORIE_ROLE_LINKER_PERIMETRE_CATEG ON UNICAEN_PRIVILEGE_PERIMETRE_CATEGORIE_ROLE_LINKER (PERIMETRE_CATEGORIE_ID);
CREATE INDEX IX_UNICAEN_PERIMETRE_CATEGORIE_ROLE_LINKER_ROLE ON UNICAEN_PRIVILEGE_PERIMETRE_CATEGORIE_ROLE_LINKER (ROLE_ID);


-- DATA

INSERT INTO UNICAEN_PRIVILEGE_PRIVILEGE_CATEGORIE (CODE, LIBELLE, NAMESPACE, ORDRE)
VALUES
  ('perimetre',   'Gestion des périmètres',   'UnicaenPrivilege\Provider\Privilege',    4)
ON CONFLICT (CODE) DO
  UPDATE SET
    LIBELLE=excluded.LIBELLE,
    NAMESPACE=excluded.NAMESPACE,
    ORDRE=excluded.ORDRE;

WITH d(code, lib, ordre) AS (
  SELECT 'consulter', 'Consulter les périmètres', 1 UNION
  SELECT 'attribuer', 'Attribuer un périmètre',   2 UNION
  SELECT 'editer',    'Éditer un périmètre',      3 UNION
  SELECT 'supprimer', 'Supprimer un périmètre',   4
)
INSERT INTO UNICAEN_PRIVILEGE_PRIVILEGE(CATEGORIE_ID, CODE, LIBELLE, ORDRE)
  SELECT cp.id, d.code, d.lib, d.ordre
  FROM d
    JOIN UNICAEN_PRIVILEGE_PRIVILEGE_CATEGORIE cp ON cp.CODE = 'perimetre'
  ON CONFLICT (CATEGORIE_ID, CODE) DO
    UPDATE SET
      LIBELLE=excluded.LIBELLE,
      ORDRE=excluded.ORDRE;
 No newline at end of file

data/sql/schema_postgresql.sql

deleted100644 → 0
+0 −250

File deleted.

Preview size limit exceeded, changes collapsed.

+0 −0

File changed and moved.

Preview size limit exceeded, changes collapsed.

+259 −0

File added.

Preview size limit exceeded, changes collapsed.

Loading