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 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176
| CREATE TABLE org_type (
org_type_id SERIAL NOT NULL,
lib varchar(30) NOT NULL,
PRIMARY KEY (org_type_id));
CREATE TABLE demolition (
magasin_id int4 NOT NULL,
agrement varchar(20) NOT NULL,
qualicert varchar(20) DEFAULT '' NOT NULL,
PRIMARY KEY (magasin_id));
CREATE TABLE directeur (
entreprise_id int4 NOT NULL,
employe_id int4 NOT NULL,
magasin_id int4 NOT NULL,
PRIMARY KEY (entreprise_id,
employe_id),
CONSTRAINT directeur_ak1
UNIQUE (entreprise_id, magasin_id));
CREATE TABLE employe_mag (
entreprise_id int4 NOT NULL,
employe_id int4 NOT NULL,
magasin_id int4 NOT NULL,
PRIMARY KEY (entreprise_id,
employe_id),
CONSTRAINT emp_mag_ak_1
UNIQUE (entreprise_id, employe_id, magasin_id));
CREATE TABLE responsable (
employe_id int4 NOT NULL,
PRIMARY KEY (employe_id));
CREATE TABLE employe (
entreprise_id int4 NOT NULL,
employe_id int4 NOT NULL UNIQUE,
PRIMARY KEY (entreprise_id,
employe_id));
CREATE TABLE metier (
metier_id SERIAL NOT NULL,
lib varchar(30) NOT NULL,
PRIMARY KEY (metier_id));
CREATE TABLE mra (
mra_id int4 NOT NULL,
metier_id int4 NOT NULL,
PRIMARY KEY (mra_id));
CREATE TABLE vendeur (
vendeur_id int4 NOT NULL,
PRIMARY KEY (vendeur_id));
CREATE TABLE magasin (
vendeur_id int4 NOT NULL,
magasin_id int4 NOT NULL UNIQUE,
nom varchar(100) NOT NULL,
siret varchar(14) NOT NULL,
logo varchar(255) NOT NULL,
PRIMARY KEY (vendeur_id,
magasin_id));
CREATE TABLE prefixe (
prefixe_id SERIAL NOT NULL,
lib varchar(30) NOT NULL,
lib_court varchar(10) NOT NULL,
CONSTRAINT pk_prefixes
PRIMARY KEY (prefixe_id));
CREATE TABLE statut (
statut_id SERIAL NOT NULL,
lib varchar(20) NOT NULL,
PRIMARY KEY (statut_id));
CREATE TABLE societe (
societe_id int4 NOT NULL,
statut_id int4 NOT NULL,
capital varchar(20) NOT NULL,
PRIMARY KEY (societe_id));
CREATE TABLE ent_immat (
ent_immat_id int4 NOT NULL,
tribunal_rcs varchar(50) NOT NULL UNIQUE,
siren varchar(9) NOT NULL UNIQUE,
tva_intra varchar(20) NOT NULL UNIQUE,
PRIMARY KEY (ent_immat_id));
CREATE TABLE entreprise (
entreprise_id int4 NOT NULL,
rs varchar(50) NOT NULL,
PRIMARY KEY (entreprise_id));
CREATE TABLE organisme (
organisme_id int4 NOT NULL,
org_type_id int4 NOT NULL,
name varchar(50) NOT NULL,
PRIMARY KEY (organisme_id));
CREATE TABLE membre (
membre_id int4 NOT NULL,
pseudo varchar(30) NOT NULL,
logo varchar(255) NOT NULL,
PRIMARY KEY (membre_id));
CREATE TABLE main_phone (
actor_id int4 NOT NULL,
phone_id int2 NOT NULL,
PRIMARY KEY (actor_id));
CREATE TABLE main_adresse (
actor_id int4 NOT NULL,
adresse_id int2 NOT NULL,
PRIMARY KEY (actor_id));
CREATE TABLE main_email (
actor_id int4 NOT NULL,
email_id int2 NOT NULL,
PRIMARY KEY (actor_id));
CREATE TABLE personne (
personnne_id int4 NOT NULL,
prefixe int4 NOT NULL,
name varchar(50) NOT NULL,
firstname varchar(50) NOT NULL,
CONSTRAINT persons_pk
PRIMARY KEY (personnne_id));
CREATE TABLE phone (
actor_id int4 NOT NULL,
phone_id int2 NOT NULL,
lib varchar(50) NOT NULL,
number varchar(20) NOT NULL,
CONSTRAINT phones_pk
PRIMARY KEY (actor_id,
phone_id));
CREATE TABLE email (
actor_id int4 NOT NULL,
email_id int2 NOT NULL,
lib varchar(50) NOT NULL,
address varchar(320) NOT NULL,
CONSTRAINT emails_pk
PRIMARY KEY (actor_id,
email_id));
CREATE TABLE adresse (
actor_id int4 NOT NULL,
adresse_id int2 NOT NULL,
lib varchar(50) NOT NULL,
chez varchar(38) DEFAULT '' NOT NULL,
line_1 varchar(38) NOT NULL,
line_2 varchar(38) DEFAULT '' NOT NULL,
line_3 varchar(38) DEFAULT '' NOT NULL,
code_postal char(5) NOT NULL,
ville varchar(32) NOT NULL,
CONSTRAINT adresses_pk
PRIMARY KEY (actor_id,
adresse_id));
CREATE TABLE actor (
actor_id SERIAL NOT NULL,
CONSTRAINT actors_pk
PRIMARY KEY (actor_id));
CREATE TABLE "public".member_login (
member_id int4 NOT NULL UNIQUE,
id_user int4 NOT NULL UNIQUE,
CONSTRAINT actors_logins_pk
PRIMARY KEY (member_id,
id_user));
ALTER TABLE organisme ADD CONSTRAINT organisme_org_type_org_type_id_fk FOREIGN KEY (org_type_id) REFERENCES org_type (org_type_id);
ALTER TABLE demolition ADD CONSTRAINT demolition_magasin_magasin_id_fk FOREIGN KEY (magasin_id) REFERENCES magasin (magasin_id) ON DELETE Cascade;
ALTER TABLE phone ADD CONSTRAINT phone_actor_actor_id_fk FOREIGN KEY (actor_id) REFERENCES actor (actor_id) ON DELETE Cascade;
ALTER TABLE email ADD CONSTRAINT email_actor_actor_id_fk FOREIGN KEY (actor_id) REFERENCES actor (actor_id) ON DELETE Cascade;
ALTER TABLE adresse ADD CONSTRAINT adresse_actor_actor_id_fk FOREIGN KEY (actor_id) REFERENCES actor (actor_id) ON DELETE Cascade;
ALTER TABLE main_email ADD CONSTRAINT main_email_email_actor_id_email_id_fk FOREIGN KEY (actor_id, email_id) REFERENCES email (actor_id, email_id) ON DELETE Cascade;
ALTER TABLE main_phone ADD CONSTRAINT main_phone_phone_actor_id_phone_id_fk FOREIGN KEY (actor_id, phone_id) REFERENCES phone (actor_id, phone_id) ON DELETE Cascade;
ALTER TABLE main_adresse ADD CONSTRAINT main_adresse_adresse_actor_id_fk FOREIGN KEY (actor_id, adresse_id) REFERENCES adresse (actor_id, adresse_id) ON DELETE Cascade;
ALTER TABLE membre ADD CONSTRAINT membre_actor_membre_id_fk FOREIGN KEY (membre_id) REFERENCES actor (actor_id) ON DELETE Cascade;
ALTER TABLE organisme ADD CONSTRAINT organisme_membre_organisme_id_fk FOREIGN KEY (organisme_id) REFERENCES membre (membre_id) ON DELETE Cascade;
ALTER TABLE personne ADD CONSTRAINT personne_membre_personnne_id_fk FOREIGN KEY (personnne_id) REFERENCES membre (membre_id) ON DELETE Cascade;
ALTER TABLE entreprise ADD CONSTRAINT entreprise_membre_entreprise_id_fk FOREIGN KEY (entreprise_id) REFERENCES membre (membre_id);
ALTER TABLE ent_immat ADD CONSTRAINT ent_immat_entreprise_ent_immat_id_fk FOREIGN KEY (ent_immat_id) REFERENCES entreprise (entreprise_id) ON DELETE Cascade;
ALTER TABLE societe ADD CONSTRAINT societe_ent_immat_societe_id_fk FOREIGN KEY (societe_id) REFERENCES ent_immat (ent_immat_id) ON DELETE Cascade;
ALTER TABLE societe ADD CONSTRAINT societe_statut_statut_id_fk FOREIGN KEY (statut_id) REFERENCES statut (statut_id);
ALTER TABLE personne ADD CONSTRAINT prefixes_persons_fk FOREIGN KEY (prefixe) REFERENCES prefixe (prefixe_id) ON UPDATE No action ON DELETE No action;
ALTER TABLE vendeur ADD CONSTRAINT vendeur_ent_immat_vendeur_id_fk FOREIGN KEY (vendeur_id) REFERENCES ent_immat (ent_immat_id) ON DELETE Cascade;
ALTER TABLE mra ADD CONSTRAINT mra_entreprise_mra_id_fk FOREIGN KEY (mra_id) REFERENCES entreprise (entreprise_id) ON DELETE Cascade;
ALTER TABLE mra ADD CONSTRAINT mra_metier_metier_id_fk FOREIGN KEY (metier_id) REFERENCES metier (metier_id);
ALTER TABLE magasin ADD CONSTRAINT magasin_vendeur_vendeur_id_fk FOREIGN KEY (vendeur_id) REFERENCES vendeur (vendeur_id) ON DELETE Cascade;
ALTER TABLE magasin ADD CONSTRAINT magasin_actor_magasin_id_fk FOREIGN KEY (magasin_id) REFERENCES actor (actor_id);
ALTER TABLE employe ADD CONSTRAINT employe_personne_employe_id_fk FOREIGN KEY (employe_id) REFERENCES personne (personnne_id) ON DELETE Cascade;
ALTER TABLE employe ADD CONSTRAINT employe_entreprise_entreprise_id_fk FOREIGN KEY (entreprise_id) REFERENCES entreprise (entreprise_id);
ALTER TABLE responsable ADD CONSTRAINT responsable_employe_employe_id_fk FOREIGN KEY (employe_id) REFERENCES employe (employe_id) ON DELETE Cascade;
ALTER TABLE employe_mag ADD CONSTRAINT employe_mag_employe_entreprise_id_employe_id_fk FOREIGN KEY (entreprise_id, employe_id) REFERENCES employe (entreprise_id, employe_id) ON DELETE Cascade;
ALTER TABLE employe_mag ADD CONSTRAINT employe_mag_magasin_entreprise_id_magasin_id_fk FOREIGN KEY (entreprise_id, magasin_id) REFERENCES magasin (vendeur_id, magasin_id) ON DELETE Cascade;
ALTER TABLE directeur ADD CONSTRAINT directeur_employe_mag_entreprise_id_employe_id_magasin_id_fk FOREIGN KEY (entreprise_id, employe_id, magasin_id) REFERENCES employe_mag (entreprise_id, employe_id, magasin_id) ON DELETE Cascade;
CREATE INDEX personne_idx
ON personne (name, firstname);
CREATE INDEX adresse_idx
ON adresse (code_postal); |
Partager