Skip to content
Snippets Groups Projects
Commit 73cc907c authored by Olivier Hugo's avatar Olivier Hugo
Browse files

Edited .ddl for better types and fields

parent 09d08ab5
Branches
No related tags found
No related merge requests found
...@@ -23,109 +23,107 @@ create database MAIN; ...@@ -23,109 +23,107 @@ create database MAIN;
-- _____________ -- _____________
create table a ( create table a (
ID_PUB numeric(10) not null, ID_PUB bigint not null,
mot char(1) not null, mot varchar(100) not null,
constraint ID_a_ID primary key (ID_PUB, mot)); constraint ID_a_ID primary key (ID_PUB, mot));
create table ACHAT ( create table ACHAT (
ID_EXE numeric(10) not null, ID_EXE bigint not null,
date char(1) not null, date timestamp not null,
prix char(1) not null, prix numeric(10,2) not null,
lieu char(1) not null, lieu varchar(300) not null,
code char(1) not null, code char(3) not null,
constraint FKprovient_d_un_ID primary key (ID_EXE)); constraint FKprovient_d_un_ID primary key (ID_EXE));
create table Auteur ( create table Auteur (
nom char(1) not null, nom varchar(300) not null,
constraint ID_Auteur_ID primary key (nom)); constraint ID_Auteur_ID primary key (nom));
create table autorise_l_acces ( create table autorise_l_acces (
nom char(1) not null, nom varchar(300) not null,
email -- Compound attribute -- not null, email varchar(300) not null,
constraint ID_autorise_l_acces_ID primary key (email -- Compound attribute --, nom)); constraint ID_autorise_l_acces_ID primary key (email, nom));
create table DEVISE ( create table DEVISE (
code char(1) not null, code char(3) not null,
taux char(1) not null, taux numeric(30,10) not null,
symbole char(1) not null, symbole char(3) not null,
constraint ID_DEVISE_ID primary key (code)); constraint ID_DEVISE_ID primary key (code));
create table EXEMPLAIRE ( create table EXEMPLAIRE (
ID_EXE -- Sequence attribute not implemented -- not null, ID_EXE bigint not null,
statut char(1) not null, statut smallint not null,
nom char(1) not null, nom varchar(300) not null,
email -- Compound attribute --, email varchar(300),
ID_PUB numeric(10) not null, ID_PUB bigint not null,
constraint ID_ID primary key (ID_EXE)); constraint ID_ID primary key (ID_EXE));
create table interesse_par ( create table interesse_par (
mot char(1) not null, mot varchar(100) not null,
email -- Compound attribute -- not null, email varchar(300) not null,
constraint ID_interesse_par_ID primary key (mot, email -- Compound attribute --)); constraint ID_interesse_par_ID primary key (mot, email));
create table LABORATOIRE ( create table LABORATOIRE (
nom char(1) not null, nom varchar(300) not null,
constraint ID_LABORATOIRE_ID primary key (nom)); constraint ID_LABORATOIRE_ID primary key (nom));
create table LIVRE ( create table LIVRE (
ISBN char(13) not null, ISBN char(13) not null,
editeur char(1) not null, editeur varchar(300) not null,
edition char(1) not null, edition varchar(100) not null,
annee_de_publication numeric(4) not null, annee_de_publication smallint not null,
categorie1 char(1), categorie1 varchar(100),
categorie2 char(1), categorie2 varchar(100),
categorie3 char(1), categorie3 varchar(100),
categorie4 char(1), categorie4 varchar(100),
constraint ID_LIVRE_ID primary key (ISBN)); constraint ID_LIVRE_ID primary key (ISBN));
create table MOT_CLE ( create table MOT_CLE (
mot char(1) not null, mot varchar(100) not null,
constraint ID_MOT_CLE_ID primary key (mot)); constraint ID_MOT_CLE_ID primary key (mot));
create table PERIODIQUE ( create table PERIODIQUE (
numero char(1) not null, ID_PER bigint not null,
editeur char(1) not null, numero char(5) not null,
edition char(1) not null, editeur varchar(300) not null,
annee_de_publication char(1) not null, edition varchar(100) not null,
constraint ID_PERIODIQUE_ID primary key (numero, editeur, edition, annee_de_publication)); annee_de_publication smallint not null,
constraint ID_PERIODIQUE_ID primary key (ID_PER));
create table propose ( create table propose (
ID_PUB numeric(10) not null, ID_PUB bigint not null,
date char(1) not null, date datetime not null,
email -- Compound attribute -- not null, email varchar(300),
constraint FKpro_PUB_ID primary key (ID_PUB)); constraint FKpro_PUB_ID primary key (ID_PUB));
create table PUBLICATION ( create table PUBLICATION (
ID_PUB -- Sequence attribute not implemented -- not null, ID_PUB bigint not null,
numero char(1), ID_PER bigint,
editeur char(1), ID_RAP bigint,
edition char(1),
annee_de_publication char(1),
id char(1),
ISBN char(13), ISBN char(13),
type char(1) not null, type smallint not null,
constraint ID_ID primary key (ID_PUB), constraint ID_ID primary key (ID_PUB),
constraint FKou_est_un_ID unique (numero, editeur, edition, annee_de_publication), constraint FKou_est_un_ID unique (ID_PER),
constraint FKou_encore_est_un_ID unique (id), constraint FKou_encore_est_un_ID unique (ID_RAP),
constraint FKest_un_ID unique (ISBN)); constraint FKest_un_ID unique (ISBN));
create table RAPPORT ( create table RAPPORT (
titre char(1) not null, titre varchar(300) not null,
id char(1) not null, ID_RAP bigint not null,
annee_de_publication char(1) not null, annee_de_publication char(1) not null,
constraint ID_RAPPORT_ID primary key (id)); constraint ID_RAPPORT_ID primary key (ID_RAP));
create table redige_par ( create table redige_par (
nom char(1) not null, nom varchar(300) not null,
id char(1) not null, ID_RAP bigint not null,
constraint ID_redige_par_ID primary key (id, nom)); constraint ID_redige_par_ID primary key (ID_RAP, nom));
create table UTILISATEUR ( create table UTILISATEUR (
email -- Compound attribute -- not null, email varchar(300) not null,
constraint ID_UTILISATEUR_ID primary key (email -- Compound attribute --)); constraint ID_UTILISATEUR_ID primary key (email));
create table ecrit_par ( create table ecrit_par (
nom char(1) not null, nom varchar(300) not null,
ISBN char(13) not null, ISBN char(13) not null,
constraint ID_ecrit_par_ID primary key (nom, ISBN)); constraint ID_ecrit_par_ID primary key (nom, ISBN));
...@@ -150,7 +148,7 @@ alter table ACHAT add constraint FKprovient_d_un_FK ...@@ -150,7 +148,7 @@ alter table ACHAT add constraint FKprovient_d_un_FK
references EXEMPLAIRE; references EXEMPLAIRE;
alter table autorise_l_acces add constraint FKaut_UTI alter table autorise_l_acces add constraint FKaut_UTI
foreign key (email -- Compound attribute --) foreign key (email)
references UTILISATEUR; references UTILISATEUR;
alter table autorise_l_acces add constraint FKaut_LAB_FK alter table autorise_l_acces add constraint FKaut_LAB_FK
...@@ -162,7 +160,7 @@ alter table EXEMPLAIRE add constraint FKpossede_FK ...@@ -162,7 +160,7 @@ alter table EXEMPLAIRE add constraint FKpossede_FK
references LABORATOIRE; references LABORATOIRE;
alter table EXEMPLAIRE add constraint FKemprunte_FK alter table EXEMPLAIRE add constraint FKemprunte_FK
foreign key (email -- Compound attribute --) foreign key (email)
references UTILISATEUR; references UTILISATEUR;
alter table EXEMPLAIRE add constraint FKcomporte_FK alter table EXEMPLAIRE add constraint FKcomporte_FK
...@@ -170,7 +168,7 @@ alter table EXEMPLAIRE add constraint FKcomporte_FK ...@@ -170,7 +168,7 @@ alter table EXEMPLAIRE add constraint FKcomporte_FK
references PUBLICATION; references PUBLICATION;
alter table interesse_par add constraint FKint_UTI_FK alter table interesse_par add constraint FKint_UTI_FK
foreign key (email -- Compound attribute --) foreign key (email)
references UTILISATEUR; references UTILISATEUR;
alter table interesse_par add constraint FKint_MOT alter table interesse_par add constraint FKint_MOT
...@@ -187,10 +185,10 @@ alter table LIVRE add constraint ID_LIVRE_CHK ...@@ -187,10 +185,10 @@ alter table LIVRE add constraint ID_LIVRE_CHK
alter table PERIODIQUE add constraint ID_PERIODIQUE_CHK alter table PERIODIQUE add constraint ID_PERIODIQUE_CHK
check(exists(select * from PUBLICATION check(exists(select * from PUBLICATION
where PUBLICATION.numero = numero and PUBLICATION.editeur = editeur and PUBLICATION.edition = edition and PUBLICATION.annee_de_publication = annee_de_publication)); where PUBLICATION.ID_PER = ID_PER));
alter table propose add constraint FKpro_UTI_FK alter table propose add constraint FKpro_UTI_FK
foreign key (email -- Compound attribute --) foreign key (email)
references UTILISATEUR; references UTILISATEUR;
alter table propose add constraint FKpro_PUB_FK alter table propose add constraint FKpro_PUB_FK
...@@ -198,15 +196,15 @@ alter table propose add constraint FKpro_PUB_FK ...@@ -198,15 +196,15 @@ alter table propose add constraint FKpro_PUB_FK
references PUBLICATION; references PUBLICATION;
alter table PUBLICATION add constraint FKou_est_un_FK alter table PUBLICATION add constraint FKou_est_un_FK
foreign key (numero, editeur, edition, annee_de_publication) foreign key (ID_PER)
references PERIODIQUE; references PERIODIQUE;
alter table PUBLICATION add constraint FKou_est_un_CHK alter table PUBLICATION add constraint FKou_est_un_CHK
check((numero is not null and editeur is not null and edition is not null and annee_de_publication is not null) check((ID_PER not null)
or (numero is null and editeur is null and edition is null and annee_de_publication is null)); or (ID_PER is null));
alter table PUBLICATION add constraint FKou_encore_est_un_FK alter table PUBLICATION add constraint FKou_encore_est_un_FK
foreign key (id) foreign key (ID_RAP)
references RAPPORT; references RAPPORT;
alter table PUBLICATION add constraint FKest_un_FK alter table PUBLICATION add constraint FKest_un_FK
...@@ -215,14 +213,14 @@ alter table PUBLICATION add constraint FKest_un_FK ...@@ -215,14 +213,14 @@ alter table PUBLICATION add constraint FKest_un_FK
alter table RAPPORT add constraint ID_RAPPORT_CHK alter table RAPPORT add constraint ID_RAPPORT_CHK
check(exists(select * from PUBLICATION check(exists(select * from PUBLICATION
where PUBLICATION.id = id)); where PUBLICATION.ID_RAP = ID_RAP));
alter table RAPPORT add constraint ID_RAPPORT_CHK alter table RAPPORT add constraint ID_RAPPORT_CHK
check(exists(select * from redige_par check(exists(select * from redige_par
where redige_par.id = id)); where redige_par.ID_RAP = ID_RAP));
alter table redige_par add constraint FKred_RAP alter table redige_par add constraint FKred_RAP
foreign key (id) foreign key (ID_RAP)
references RAPPORT; references RAPPORT;
alter table redige_par add constraint FKred_Aut_FK alter table redige_par add constraint FKred_Aut_FK
...@@ -257,7 +255,7 @@ create unique index ID_Auteur_IND ...@@ -257,7 +255,7 @@ create unique index ID_Auteur_IND
on Auteur (nom); on Auteur (nom);
create unique index ID_autorise_l_acces_IND create unique index ID_autorise_l_acces_IND
on autorise_l_acces (email -- Compound attribute --, nom); on autorise_l_acces (email, nom);
create index FKaut_LAB_IND create index FKaut_LAB_IND
on autorise_l_acces (nom); on autorise_l_acces (nom);
...@@ -272,16 +270,16 @@ create index FKpossede_IND ...@@ -272,16 +270,16 @@ create index FKpossede_IND
on EXEMPLAIRE (nom); on EXEMPLAIRE (nom);
create index FKemprunte_IND create index FKemprunte_IND
on EXEMPLAIRE (email -- Compound attribute --); on EXEMPLAIRE (email);
create index FKcomporte_IND create index FKcomporte_IND
on EXEMPLAIRE (ID_PUB); on EXEMPLAIRE (ID_PUB);
create unique index ID_interesse_par_IND create unique index ID_interesse_par_IND
on interesse_par (mot, email -- Compound attribute --); on interesse_par (mot, email);
create index FKint_UTI_IND create index FKint_UTI_IND
on interesse_par (email -- Compound attribute --); on interesse_par (email);
create unique index ID_LABORATOIRE_IND create unique index ID_LABORATOIRE_IND
on LABORATOIRE (nom); on LABORATOIRE (nom);
...@@ -293,10 +291,10 @@ create unique index ID_MOT_CLE_IND ...@@ -293,10 +291,10 @@ create unique index ID_MOT_CLE_IND
on MOT_CLE (mot); on MOT_CLE (mot);
create unique index ID_PERIODIQUE_IND create unique index ID_PERIODIQUE_IND
on PERIODIQUE (numero, editeur, edition, annee_de_publication); on PERIODIQUE (ID_PER);
create index FKpro_UTI_IND create index FKpro_UTI_IND
on propose (email -- Compound attribute --); on propose (email);
create unique index FKpro_PUB_IND create unique index FKpro_PUB_IND
on propose (ID_PUB); on propose (ID_PUB);
...@@ -305,16 +303,16 @@ create unique index ID_IND ...@@ -305,16 +303,16 @@ create unique index ID_IND
on PUBLICATION (ID_PUB); on PUBLICATION (ID_PUB);
create unique index FKou_est_un_IND create unique index FKou_est_un_IND
on PUBLICATION (numero, editeur, edition, annee_de_publication); on PUBLICATION (ID_PER);
create unique index FKou_encore_est_un_IND create unique index FKou_encore_est_un_IND
on PUBLICATION (id); on PUBLICATION (ID_RAP);
create unique index FKest_un_IND create unique index FKest_un_IND
on PUBLICATION (ISBN); on PUBLICATION (ISBN);
create unique index ID_RAPPORT_IND create unique index ID_RAPPORT_IND
on RAPPORT (id); on RAPPORT (ID_RAP);
create unique index ID_redige_par_IND create unique index ID_redige_par_IND
on redige_par (id, nom); on redige_par (id, nom);
...@@ -323,7 +321,7 @@ create index FKred_Aut_IND ...@@ -323,7 +321,7 @@ create index FKred_Aut_IND
on redige_par (nom); on redige_par (nom);
create unique index ID_UTILISATEUR_IND create unique index ID_UTILISATEUR_IND
on UTILISATEUR (email -- Compound attribute --); on UTILISATEUR (email);
create unique index ID_ecrit_par_IND create unique index ID_ecrit_par_IND
on ecrit_par (nom, ISBN); on ecrit_par (nom, ISBN);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment