-- -----------------------------------------------------------------------------
-- Génération d'une base de données pour
-- PostgreSQL
-- (13/10/2007 18:03:10)
-- -----------------------------------------------------------------------------
-- Nom de la base : MLR1
-- Projet :
-- Auteur : Petzouille
-- Date de dernière modification : 13/10/2007 18:02:49
-- -----------------------------------------------------------------------------
drop database MLR1;
-- -----------------------------------------------------------------------------
-- CREATION DE LA BASE
-- -----------------------------------------------------------------------------
CREATE DATABASE MLR1;
-- -----------------------------------------------------------------------------
-- TABLE : NATIONALITE
-- -----------------------------------------------------------------------------
CREATE TABLE NATIONALITE
(
ID_NATIONALITE serial NOT NULL ,
NATIONALITE text NULL
, CONSTRAINT PK_NATIONALITE PRIMARY KEY (ID_NATIONALITE)
);
-- -----------------------------------------------------------------------------
-- TABLE : UTILISATEUR
-- -----------------------------------------------------------------------------
CREATE TABLE UTILISATEUR
(
ID_UTILISATEUR serial NOT NULL ,
ID_QUESTION int4 NOT NULL ,
PSEUDONYME text NOT NULL ,
MOT_DE_PASSE text NOT NULL ,
E_MAIL text NOT NULL ,
REP_QUESTION text NOT NULL
, CONSTRAINT PK_UTILISATEUR PRIMARY KEY (ID_UTILISATEUR)
);
-- -----------------------------------------------------------------------------
-- INDEX DE LA TABLE UTILISATEUR
-- -----------------------------------------------------------------------------
CREATE INDEX I_FK_UTILISATEUR_QUESTION_SECR
ON UTILISATEUR (ID_QUESTION)
;
-- -----------------------------------------------------------------------------
-- TABLE : PAYS
-- -----------------------------------------------------------------------------
CREATE TABLE PAYS
(
ID_PAYS serial NOT NULL ,
NOM_PAYS text NULL
, CONSTRAINT PK_PAYS PRIMARY KEY (ID_PAYS)
);
-- -----------------------------------------------------------------------------
-- TABLE : INSTRUMENT
-- -----------------------------------------------------------------------------
CREATE TABLE INSTRUMENT
(
ID_INSTRUMENT serial NOT NULL ,
NOM_INSTRUMENT text NOT NULL
, CONSTRAINT PK_INSTRUMENT PRIMARY KEY (ID_INSTRUMENT)
);
-- -----------------------------------------------------------------------------
-- TABLE : GROUPE
-- -----------------------------------------------------------------------------
CREATE TABLE GROUPE
(
ID_GROUPE serial NOT NULL ,
ID_VILLE int4 NOT NULL ,
ID_PAYS int4 NOT NULL ,
NOM_GROUPE text NOT NULL ,
STATUS text NOT NULL
, CONSTRAINT PK_GROUPE PRIMARY KEY (ID_GROUPE)
);
-- -----------------------------------------------------------------------------
-- INDEX DE LA TABLE GROUPE
-- -----------------------------------------------------------------------------
CREATE INDEX I_FK_GROUPE_VILLE
ON GROUPE (ID_VILLE)
;
CREATE INDEX I_FK_GROUPE_PAYS
ON GROUPE (ID_PAYS)
;
-- -----------------------------------------------------------------------------
-- TABLE : IMAGES
-- -----------------------------------------------------------------------------
CREATE TABLE IMAGES
(
ID_IMAGE serial NOT NULL ,
NOM_IMAGE text NOT NULL ,
LIEN_IMG text NOT NULL
, CONSTRAINT PK_IMAGES PRIMARY KEY (ID_IMAGE)
);
-- -----------------------------------------------------------------------------
-- TABLE : ALBUM
-- -----------------------------------------------------------------------------
CREATE TABLE ALBUM
(
ID_ALBUM serial NOT NULL ,
ID_GROUPE int4 NOT NULL ,
NOM_ALBUM text NOT NULL ,
NBRE_PISTE int4 NOT NULL ,
ANNEE_SORTIE int4 NULL
, CONSTRAINT PK_ALBUM PRIMARY KEY (ID_ALBUM)
);
-- -----------------------------------------------------------------------------
-- INDEX DE LA TABLE ALBUM
-- -----------------------------------------------------------------------------
CREATE INDEX I_FK_ALBUM_GROUPE
ON ALBUM (ID_GROUPE)
;
-- -----------------------------------------------------------------------------
-- TABLE : CHANSON
-- -----------------------------------------------------------------------------
CREATE TABLE CHANSON
(
ID_CHANSON serial NOT NULL ,
TITRE_CHANSON text NOT NULL
, CONSTRAINT PK_CHANSON PRIMARY KEY (ID_CHANSON)
);
-- -----------------------------------------------------------------------------
-- TABLE : VILLE
-- -----------------------------------------------------------------------------
CREATE TABLE VILLE
(
ID_VILLE serial NOT NULL ,
VILLE text NULL
, CONSTRAINT PK_VILLE PRIMARY KEY (ID_VILLE)
);
-- -----------------------------------------------------------------------------
-- TABLE : MUSICIENS
-- -----------------------------------------------------------------------------
CREATE TABLE MUSICIENS
(
ID_MUSICIEN serial NOT NULL ,
ID_NATIONALITE int4 NOT NULL ,
NOM_MUSICIEN text NOT NULL ,
PRENOM_MUSICIEN text NOT NULL ,
DATE_NAISSANCE date(8) NULL ,
SEXE text NULL
, CONSTRAINT PK_MUSICIENS PRIMARY KEY (ID_MUSICIEN)
);
-- -----------------------------------------------------------------------------
-- INDEX DE LA TABLE MUSICIENS
-- -----------------------------------------------------------------------------
CREATE INDEX I_FK_MUSICIENS_NATIONALITE
ON MUSICIENS (ID_NATIONALITE)
;
-- -----------------------------------------------------------------------------
-- TABLE : GENRE
-- -----------------------------------------------------------------------------
CREATE TABLE GENRE
(
ID_GENRE serial NOT NULL ,
GENRE text NOT NULL
, CONSTRAINT PK_GENRE PRIMARY KEY (ID_GENRE)
);
-- -----------------------------------------------------------------------------
-- TABLE : QUESTION_SECRETE
-- -----------------------------------------------------------------------------
CREATE TABLE QUESTION_SECRETE
(
ID_QUESTION serial NOT NULL ,
TEXTE_QUESTION text NOT NULL
, CONSTRAINT PK_QUESTION_SECRETE PRIMARY KEY (ID_QUESTION)
);
-- -----------------------------------------------------------------------------
-- TABLE : LYRICAL_THEME
-- -----------------------------------------------------------------------------
CREATE TABLE LYRICAL_THEME
(
ID_THEME serial NOT NULL ,
THEME text NULL
, CONSTRAINT PK_LYRICAL_THEME PRIMARY KEY (ID_THEME)
);
-- -----------------------------------------------------------------------------
-- TABLE : EST_REPRESENTE
-- -----------------------------------------------------------------------------
CREATE TABLE EST_REPRESENTE
(
ID_IMAGE int4 NOT NULL ,
ID_GROUPE int4 NOT NULL
, CONSTRAINT PK_EST_REPRESENTE PRIMARY KEY (ID_IMAGE, ID_GROUPE)
);
-- -----------------------------------------------------------------------------
-- INDEX DE LA TABLE EST_REPRESENTE
-- -----------------------------------------------------------------------------
CREATE INDEX I_FK_EST_REPRESENTE_IMAGES
ON EST_REPRESENTE (ID_IMAGE)
;
CREATE INDEX I_FK_EST_REPRESENTE_GROUPE
ON EST_REPRESENTE (ID_GROUPE)
;
-- -----------------------------------------------------------------------------
-- TABLE : JOUE_DANS
-- -----------------------------------------------------------------------------
CREATE TABLE JOUE_DANS
(
ID_MUSICIEN int4 NOT NULL ,
ID_GROUPE int4 NOT NULL
, CONSTRAINT PK_JOUE_DANS PRIMARY KEY (ID_MUSICIEN, ID_GROUPE)
);
-- -----------------------------------------------------------------------------
-- INDEX DE LA TABLE JOUE_DANS
-- -----------------------------------------------------------------------------
CREATE INDEX I_FK_JOUE_DANS_MUSICIENS
ON JOUE_DANS (ID_MUSICIEN)
;
CREATE INDEX I_FK_JOUE_DANS_GROUPE
ON JOUE_DANS (ID_GROUPE)
;
-- -----------------------------------------------------------------------------
-- TABLE : A_POUR_THEME
-- -----------------------------------------------------------------------------
CREATE TABLE A_POUR_THEME
(
ID_THEME int4 NOT NULL ,
ID_ALBUM int4 NOT NULL
, CONSTRAINT PK_A_POUR_THEME PRIMARY KEY (ID_THEME, ID_ALBUM)
);
-- -----------------------------------------------------------------------------
-- INDEX DE LA TABLE A_POUR_THEME
-- -----------------------------------------------------------------------------
CREATE INDEX I_FK_A_POUR_THEME_LYRICAL_THEM
ON A_POUR_THEME (ID_THEME)
;
CREATE INDEX I_FK_A_POUR_THEME_ALBUM
ON A_POUR_THEME (ID_ALBUM)
;
-- -----------------------------------------------------------------------------
-- TABLE : MODIFIE
-- -----------------------------------------------------------------------------
CREATE TABLE MODIFIE
(
ID_UTILISATEUR int4 NOT NULL ,
ID_GROUPE int4 NOT NULL ,
DATE date(8) NULL
, CONSTRAINT PK_MODIFIE PRIMARY KEY (ID_UTILISATEUR, ID_GROUPE)
);
-- -----------------------------------------------------------------------------
-- INDEX DE LA TABLE MODIFIE
-- -----------------------------------------------------------------------------
CREATE INDEX I_FK_MODIFIE_UTILISATEUR
ON MODIFIE (ID_UTILISATEUR)
;
CREATE INDEX I_FK_MODIFIE_GROUPE
ON MODIFIE (ID_GROUPE)
;
-- -----------------------------------------------------------------------------
-- TABLE : COMPORTE
-- -----------------------------------------------------------------------------
CREATE TABLE COMPORTE
(
ID_ALBUM int4 NOT NULL ,
ID_CHANSON int4 NOT NULL
, CONSTRAINT PK_COMPORTE PRIMARY KEY (ID_ALBUM, ID_CHANSON)
);
-- -----------------------------------------------------------------------------
-- INDEX DE LA TABLE COMPORTE
-- -----------------------------------------------------------------------------
CREATE INDEX I_FK_COMPORTE_ALBUM
ON COMPORTE (ID_ALBUM)
;
CREATE INDEX I_FK_COMPORTE_CHANSON
ON COMPORTE (ID_CHANSON)
;
-- -----------------------------------------------------------------------------
-- TABLE : JOUE
-- -----------------------------------------------------------------------------
CREATE TABLE JOUE
(
ID_INSTRUMENT int4 NOT NULL ,
ID_MUSICIEN int4 NOT NULL
, CONSTRAINT PK_JOUE PRIMARY KEY (ID_INSTRUMENT, ID_MUSICIEN)
);
-- -----------------------------------------------------------------------------
-- INDEX DE LA TABLE JOUE
-- -----------------------------------------------------------------------------
CREATE INDEX I_FK_JOUE_INSTRUMENT
ON JOUE (ID_INSTRUMENT)
;
CREATE INDEX I_FK_JOUE_MUSICIENS
ON JOUE (ID_MUSICIEN)
;
-- -----------------------------------------------------------------------------
-- TABLE : SE_TROUVE
-- -----------------------------------------------------------------------------
CREATE TABLE SE_TROUVE
(
ID_VILLE int4 NOT NULL ,
ID_PAYS int4 NOT NULL
, CONSTRAINT PK_SE_TROUVE PRIMARY KEY (ID_VILLE, ID_PAYS)
);
-- -----------------------------------------------------------------------------
-- INDEX DE LA TABLE SE_TROUVE
-- -----------------------------------------------------------------------------
CREATE INDEX I_FK_SE_TROUVE_VILLE
ON SE_TROUVE (ID_VILLE)
;
CREATE INDEX I_FK_SE_TROUVE_PAYS
ON SE_TROUVE (ID_PAYS)
;
-- -----------------------------------------------------------------------------
-- TABLE : OFFICIE
-- -----------------------------------------------------------------------------
CREATE TABLE OFFICIE
(
ID_GENRE int4 NOT NULL ,
ID_GROUPE int4 NOT NULL
, CONSTRAINT PK_OFFICIE PRIMARY KEY (ID_GENRE, ID_GROUPE)
);
-- -----------------------------------------------------------------------------
-- INDEX DE LA TABLE OFFICIE
-- -----------------------------------------------------------------------------
CREATE INDEX I_FK_OFFICIE_GENRE
ON OFFICIE (ID_GENRE)
;
CREATE INDEX I_FK_OFFICIE_GROUPE
ON OFFICIE (ID_GROUPE)
;
-- -----------------------------------------------------------------------------
-- CREATION DES REFERENCES DE TABLE
-- -----------------------------------------------------------------------------
ALTER TABLE UTILISATEUR ADD
CONSTRAINT FK_UTILISATEUR_QUESTION_SECRETE
FOREIGN KEY (ID_QUESTION)
REFERENCES QUESTION_SECRETE (ID_QUESTION);
ALTER TABLE GROUPE ADD
CONSTRAINT FK_GROUPE_VILLE
FOREIGN KEY (ID_VILLE)
REFERENCES VILLE (ID_VILLE);
ALTER TABLE GROUPE ADD
CONSTRAINT FK_GROUPE_PAYS
FOREIGN KEY (ID_PAYS)
REFERENCES PAYS (ID_PAYS);
ALTER TABLE ALBUM ADD
CONSTRAINT FK_ALBUM_GROUPE
FOREIGN KEY (ID_GROUPE)
REFERENCES GROUPE (ID_GROUPE);
ALTER TABLE MUSICIENS ADD
CONSTRAINT FK_MUSICIENS_NATIONALITE
FOREIGN KEY (ID_NATIONALITE)
REFERENCES NATIONALITE (ID_NATIONALITE);
ALTER TABLE EST_REPRESENTE ADD
CONSTRAINT FK_EST_REPRESENTE_IMAGES
FOREIGN KEY (ID_IMAGE)
REFERENCES IMAGES (ID_IMAGE);
ALTER TABLE EST_REPRESENTE ADD
CONSTRAINT FK_EST_REPRESENTE_GROUPE
FOREIGN KEY (ID_GROUPE)
REFERENCES GROUPE (ID_GROUPE);
ALTER TABLE JOUE_DANS ADD
CONSTRAINT FK_JOUE_DANS_MUSICIENS
FOREIGN KEY (ID_MUSICIEN)
REFERENCES MUSICIENS (ID_MUSICIEN);
ALTER TABLE JOUE_DANS ADD
CONSTRAINT FK_JOUE_DANS_GROUPE
FOREIGN KEY (ID_GROUPE)
REFERENCES GROUPE (ID_GROUPE);
ALTER TABLE A_POUR_THEME ADD
CONSTRAINT FK_A_POUR_THEME_LYRICAL_THEME
FOREIGN KEY (ID_THEME)
REFERENCES LYRICAL_THEME (ID_THEME);
ALTER TABLE A_POUR_THEME ADD
CONSTRAINT FK_A_POUR_THEME_ALBUM
FOREIGN KEY (ID_ALBUM)
REFERENCES ALBUM (ID_ALBUM);
ALTER TABLE MODIFIE ADD
CONSTRAINT FK_MODIFIE_UTILISATEUR
FOREIGN KEY (ID_UTILISATEUR)
REFERENCES UTILISATEUR (ID_UTILISATEUR);
ALTER TABLE MODIFIE ADD
CONSTRAINT FK_MODIFIE_GROUPE
FOREIGN KEY (ID_GROUPE)
REFERENCES GROUPE (ID_GROUPE);
ALTER TABLE COMPORTE ADD
CONSTRAINT FK_COMPORTE_ALBUM
FOREIGN KEY (ID_ALBUM)
REFERENCES ALBUM (ID_ALBUM);
ALTER TABLE COMPORTE ADD
CONSTRAINT FK_COMPORTE_CHANSON
FOREIGN KEY (ID_CHANSON)
REFERENCES CHANSON (ID_CHANSON);
ALTER TABLE JOUE ADD
CONSTRAINT FK_JOUE_INSTRUMENT
FOREIGN KEY (ID_INSTRUMENT)
REFERENCES INSTRUMENT (ID_INSTRUMENT);
ALTER TABLE JOUE ADD
CONSTRAINT FK_JOUE_MUSICIENS
FOREIGN KEY (ID_MUSICIEN)
REFERENCES MUSICIENS (ID_MUSICIEN);
ALTER TABLE SE_TROUVE ADD
CONSTRAINT FK_SE_TROUVE_VILLE
FOREIGN KEY (ID_VILLE)
REFERENCES VILLE (ID_VILLE);
ALTER TABLE SE_TROUVE ADD
CONSTRAINT FK_SE_TROUVE_PAYS
FOREIGN KEY (ID_PAYS)
REFERENCES PAYS (ID_PAYS);
ALTER TABLE OFFICIE ADD
CONSTRAINT FK_OFFICIE_GENRE
FOREIGN KEY (ID_GENRE)
REFERENCES GENRE (ID_GENRE);
ALTER TABLE OFFICIE ADD
CONSTRAINT FK_OFFICIE_GROUPE
FOREIGN KEY (ID_GROUPE)
REFERENCES GROUPE (ID_GROUPE);
-- -----------------------------------------------------------------------------
-- FIN DE GENERATION
-- ----------------------------------------------------------------------------- |