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
|
-- création de la base
-- CREATE DATABASE B_FORUM ;
-- création du schéma dans la base de données
CREATE SCHEMA S_NEWS ;
-- table : T_UTILISATEUR_USR
CREATE TABLE S_NEWS.T_UTILISATEUR_USR
( USR_ID INTEGER NOT NULL PRIMARY KEY,
USR_MAIL VARCHAR(256) NOT NULL,
USR_TITRE CHAR(6) NULL DEFAULT 'M.' ,
CHECK ( USR_TITRE IN ('M.', 'Mlle.', 'Mme.') ) ,
USR_NOM CHAR(32) NOT NULL,
USR_PRENOM VARCHAR(32) NULL,
USR_ORGANISATION VARCHAR(128) NULL
) ;
-- table : T_FORUM_FRM
CREATE TABLE S_NEWS.T_FORUM_FRM (
FRM_ID INTEGER NOT NULL PRIMARY KEY,
FRM_NOM CHAR(64) NOT NULL,
FRM_SUJET VARCHAR(256) NULL,
FRM_DATE_CREATION TIMESTAMP NOT NULL
) ;
-- table : T_FOURNINET_FAI
CREATE TABLE S_NEWS.T_FOURNINET_FAI(
FAI_ID INTEGER NOT NULL PRIMARY KEY,
FAI_NOM CHAR(64) NOT NULL
) ;
-- table : T_J_ABONNE_ABN
CREATE TABLE TJ_ABONNE_ABN (
USR_ID INTEGER NOT NULL,
FAI_ID INTEGER NOT NULL,
CONSTRAINT PK_ABN PRIMARY KEY (USR_ID, FAI_ID),
CONSTRAINT FK_ABN_FAI FOREIGN KEY (FAI_ID)
REFERENCES S_NEWS.T_FOURNINET_FAI (FAI_ID),
CONSTRAINT FK_ABN_USR FOREIGN KEY (USR_ID)
REFERENCES S_NEWS.T_UTILISATEUR_USR (USR_ID)
) ;
-- table : T_J_INSCRIT_ISC
CREATE TABLE S_NEWS.T_J_INSCRIT_ISC (
USR_ID INTEGER NOT NULL,
FRM_ID INTEGER NOT NULL,
ISC_MOMENT TIMESTAMP NOT NULL,
CONSTRAINT PK_ISC PRIMARY KEY (USR_ID, FRM_ID),
CONSTRAINT FK_ISC_FRM FOREIGN KEY (FRM_ID)
REFERENCES S_NEWS.T_FORUM_FRM (FRM_ID),
CONSTRAINT FK_ISC_USR FOREIGN KEY (USR_ID)
REFERENCES S_NEWS.T_UTILISATEUR_USR (USR_ID)
) ;
-- table : T_SERVEUR_SRV
CREATE TABLE S_NEWS.T_SERVEUR_SRV (
SRV_ID INTEGER NOT NULL PRIMARY KEY,
FAI_ID INTEGER NOT NULL,
SRV_ADR_IP VARCHAR(15) NOT NULL,
SRV_NOM VARCHAR(256) NOT NULL,
CONSTRAINT FK_SRV_FAI FOREIGN KEY (FAI_ID)
REFERENCES S_NEWS.T_FOURNINET_FAI (FAI_ID)
) ;
-- table : T_J_RECENSE_RCS
CREATE TABLE S_NEWS.T_J_RECENSE_RCS (
SRV_ID INTEGER NOT NULL,
FRM_ID INTEGER NOT NULL,
CONSTRAINT PK_RCS PRIMARY KEY (SRV_ID, FRM_ID),
CONSTRAINT FK_RCS_FRM FOREIGN KEY (FRM_ID)
REFERENCES S_NEWS.T_FORUM_FRM (FRM_ID),
CONSTRAINT FK_RCS_SRV FOREIGN KEY (SRV_ID)
REFERENCES S_NEWS.T_SERVEUR_SRV (SRV_ID)
) ;
--- table : T_NEWS_NEW
CREATE TABLE S_NEWS.T_NEWS_NEW (
NEW_ID INTEGER NOT NULL PRIMARY KEY,
NEW_ID_PERE INTEGER NULL,
USR_ID INTEGER NOT NULL,
FRM_ID INTEGER NOT NULL,
NEW_MOMENT TIMESTAMP NOT NULL,
NEW_GLOBAL_ID CHAR(36) NOT NULL,
NEW_TITRE CHAR(256) NOT NULL,
--http://wiki.postgresql.org/wiki/Oracle_to_Postgres_Conversion#CLOBs
NEW_TEXT TEXT DEFAULT NULL, --NEW_TEXT CLOB(2 GB) NULL
CONSTRAINT FK_NEW_FRM FOREIGN KEY (FRM_ID)
REFERENCES S_NEWS.T_FORUM_FRM (FRM_ID),
CONSTRAINT FK_NEW_USR FOREIGN KEY (USR_ID)
REFERENCES S_NEWS.T_UTILISATEUR_USR (USR_ID),
CONSTRAINT FK_NEW_NEW FOREIGN KEY (NEW_ID_PERE)
REFERENCES S_NEWS.T_NEWS_NEW (NEW_ID)
) ;
-- table : T_FICHIER_FIC
CREATE TABLE S_NEWS.T_FICHIER_FIC (
FIC_ID INTEGER NOT NULL PRIMARY KEY, -- NOT NUL
NEW_ID INTEGER NOT NULL,
FIC_NOM VARCHAR(128) NOT NULL,
FIC_TAILLE_O INTEGER NOT NULL,
CONSTRAINT FK_FIC_NEW FOREIGN KEY (NEW_ID)
REFERENCES S_NEWS.T_NEWS_NEW (NEW_ID)
) ; |
Partager