-- ============================================================================ -- Base Name : FREE-BRICKS -- SGBD Name : PostgreSQL -- CREATION Date : 24/10/24 -- ============================================================================ -- ============================================================================ -- Tables -- ============================================================================ CREATE TABLE acheter ( id_membre INTEGER NOT NULL, id_piece INTEGER NOT NULL, quantite_acheter INTEGER , CONSTRAINT pk__acheter PRIMARY KEY (id_membre, id_piece) ); CREATE TABLE avoir_motif ( id_piece INTEGER , id_motif INTEGER , CONSTRAINT pk__avoir_motif PRIMARY KEY (id_piece, id_motif) ); CREATE TABLE avoir_tag ( id_tag INTEGER , id_boite INTEGER , CONSTRAINT pk__avoir_tag PRIMARY KEY (id_tag, id_boite) ); CREATE TABLE boites ( id_boite INTEGER NOT NULL, titre_boite varchar(255) NOT NULL, date_boite DATE , id_marque INTEGER , CONSTRAINT pk__boites PRIMARY KEY (id_boite) ); CREATE TABLE colorer ( id_piece INTEGER NOT NULL, id_couleur INTEGER , CONSTRAINT pk__colorer PRIMARY KEY (id_piece, id_couleur) ); CREATE TABLE construire ( id_boite INTEGER , id_modele INTEGER , CONSTRAINT pk__construire PRIMARY KEY (id_boite, id_modele) ); CREATE TABLE contenir ( id_boite INTEGER , id_piece INTEGER , quantite_contenir INTEGER NOT NULL, CONSTRAINT pk__contenir PRIMARY KEY (id_boite, id_piece) ); CREATE TABLE couleurs ( id_couleur INTEGER NOT NULL, nom_couleur VARCHAR(255) , CONSTRAINT pk__couleurs PRIMARY KEY (id_couleur) ); CREATE TABLE enregistrer ( id_boite INTEGER , id_membre INTEGER , quantite_enregistrer INTEGER NOT NULL, CONSTRAINT pk__enregistrer PRIMARY KEY (id_boite, id_membre) ); CREATE TABLE etre ( id_piece INTEGER NOT NULL, id_marque INTEGER , CONSTRAINT pk__etre PRIMARY KEY (id_piece, id_marque) ); CREATE TABLE etre_complexe ( id_piece INTEGER NOT NULL, id_piece_complexe INTEGER NOT NULL, CONSTRAINT pk__etre_complexe PRIMARY KEY (id_piece, id_piece_complexe) ); CREATE TABLE etre_forme ( id_forme INTEGER NOT NULL, id_piece INTEGER NOT NULL, CONSTRAINT pk__etre_forme PRIMARY KEY (id_forme, id_piece) ); CREATE TABLE fils ( id_fil INTEGER NOT NULL, id_modele INTEGER NOT NULL, CONSTRAINT pk__fils PRIMARY KEY (id_fil) ); CREATE TABLE illustrations ( id_illustration INTEGER NOT NULL, url_illustration VARCHAR(2048) , id_modele INTEGER NOT NULL, CONSTRAINT pk__illustrations PRIMARY KEY (id_illustration) ); CREATE TABLE marques ( id_marque INTEGER NOT NULL, nom_marque VARCHAR(255) , CONSTRAINT pk__marques PRIMARY KEY (id_marque) ); CREATE TABLE membres ( id_membre INTEGER NOT NULL, nom_membre VARCHAR(255) NOT NULL, CONSTRAINT pk__membres PRIMARY KEY (id_membre) ); CREATE TABLE messages ( id_message INTEGER NOT NULL, contenu_message VARCHAR(255) , id_membre INTEGER NOT NULL, id_fil INTEGER NOT NULL, id_message_2 INTEGER NOT NULL, CONSTRAINT pk__messages PRIMARY KEY (id_message) ); CREATE TABLE modeles ( id_modele INTEGER NOT NULL, nom_modele VARCHAR(255) , url_notice_modele VARCHAR(2048) , id_membre INTEGER NOT NULL, id_modele_etendu INTEGER NOT NULL, CONSTRAINT pk__modeles PRIMARY KEY (id_modele) ); CREATE TABLE necessiter ( id_modele INTEGER , id_piece INTEGER NOT NULL, quantite_necessiter INTEGER NOT NULL, CONSTRAINT pk__necessiter PRIMARY KEY (id_modele, id_piece) ); CREATE TABLE noter ( id_modele INTEGER , id_membre INTEGER , note_noter VARCHAR(255) NOT NULL, CONSTRAINT pk__noter PRIMARY KEY (id_modele, id_membre) ); CREATE TABLE perdre ( id_membre INTEGER , id_boite INTEGER , id_piece INTEGER NOT NULL, quantite_perdre INTEGER NOT NULL, CONSTRAINT pk__perdre PRIMARY KEY (id_membre, id_boite, id_piece) ); CREATE TABLE tags ( id_tag INTEGER NOT NULL, nom_tag VARCHAR(255) , CONSTRAINT pk__tags PRIMARY KEY (id_tag) ); CREATE TABLE varier ( id_modele INTEGER , id_modele_etendu INTEGER , CONSTRAINT pk__varier PRIMARY KEY (id_modele, id_modele_etendu) ); CREATE TABLE formes ( id_forme INTEGER NOT NULL, nom_forme VARCHAR(255) NOT NULL, CONSTRAINT pk__formes PRIMARY KEY (id_forme) ); CREATE TABLE motifs ( id_motif INTEGER NOT NULL, nom_motif VARCHAR(255) NOT NULL, CONSTRAINT pk__motifs PRIMARY KEY (id_motif) ); CREATE TABLE pieces ( id_piece INTEGER NOT NULL, CONSTRAINT pk__pieces PRIMARY KEY (id_piece) ); CREATE TABLE pieces_complexes ( id_piece_complexe INTEGER NOT NULL, CONSTRAINT pk__pieces_complexes PRIMARY KEY (id_piece_complexe) ); -- ============================================================================ -- Foreign Keys -- ============================================================================ ALTER TABLE acheter ADD CONSTRAINT fk1__acheter FOREIGN KEY (id_membre) REFERENCES membres (id_membre); ALTER TABLE acheter ADD CONSTRAINT fk2__acheter FOREIGN KEY (id_piece) REFERENCES pieces (id_piece); ALTER TABLE avoir_motif ADD CONSTRAINT fk1__avoir_motif FOREIGN KEY (id_piece) REFERENCES pieces (id_piece); ALTER TABLE avoir_motif ADD CONSTRAINT fk2__avoir_motif FOREIGN KEY (id_motif) REFERENCES motifs (id_motif); ALTER TABLE avoir_tag ADD CONSTRAINT fk1__avoir_tag FOREIGN KEY (id_tag) REFERENCES tags (id_tag); ALTER TABLE avoir_tag ADD CONSTRAINT fk2__avoir_tag FOREIGN KEY (id_boite) REFERENCES boites (id_boite); ALTER TABLE boites ADD CONSTRAINT fk1__boites FOREIGN KEY (id_marque) REFERENCES marques (id_marque); ALTER TABLE colorer ADD CONSTRAINT fk1__colorer FOREIGN KEY (id_piece) REFERENCES pieces (id_piece); ALTER TABLE colorer ADD CONSTRAINT fk2__colorer FOREIGN KEY (id_couleur) REFERENCES couleurs (id_couleur); ALTER TABLE construire ADD CONSTRAINT fk1__construire FOREIGN KEY (id_boite) REFERENCES boites (id_boite); ALTER TABLE construire ADD CONSTRAINT fk2__construire FOREIGN KEY (id_modele) REFERENCES modeles (id_modele); ALTER TABLE contenir ADD CONSTRAINT fk1__contenir FOREIGN KEY (id_boite) REFERENCES boites (id_boite); ALTER TABLE contenir ADD CONSTRAINT fk2__contenir FOREIGN KEY (id_piece) REFERENCES pieces (id_piece); ALTER TABLE enregistrer ADD CONSTRAINT fk1__enregistrer FOREIGN KEY (id_boite) REFERENCES boites (id_boite); ALTER TABLE enregistrer ADD CONSTRAINT fk2__enregistrer FOREIGN KEY (id_membre) REFERENCES membres (id_membre); ALTER TABLE etre ADD CONSTRAINT fk1__etre FOREIGN KEY (id_piece) REFERENCES pieces (id_piece); ALTER TABLE etre ADD CONSTRAINT fk2__etre FOREIGN KEY (id_marque) REFERENCES marques (id_marque); ALTER TABLE etre_complexe ADD CONSTRAINT fk1__etre_complexe FOREIGN KEY (id_piece) REFERENCES pieces (id_piece); ALTER TABLE etre_complexe ADD CONSTRAINT fk2__etre_complexe FOREIGN KEY (id_piece_complexe) REFERENCES pieces_complexes (id_piece_complexe); ALTER TABLE etre_forme ADD CONSTRAINT fk1__etre_forme FOREIGN KEY (id_forme) REFERENCES formes (id_forme); ALTER TABLE etre_forme ADD CONSTRAINT fk2__etre_forme FOREIGN KEY (id_piece) REFERENCES pieces (id_piece); ALTER TABLE fils ADD CONSTRAINT fk1__fils FOREIGN KEY (id_modele) REFERENCES modeles (id_modele); ALTER TABLE illustrations ADD CONSTRAINT fk1__illustrations FOREIGN KEY (id_modele) REFERENCES modeles (id_modele); ALTER TABLE messages ADD CONSTRAINT fk1__messages FOREIGN KEY (id_membre) REFERENCES membres (id_membre); ALTER TABLE messages ADD CONSTRAINT fk2__messages FOREIGN KEY (id_fil) REFERENCES fils (id_fil); ALTER TABLE messages ADD CONSTRAINT fk3__messages FOREIGN KEY (id_message_2) REFERENCES messages (id_message); ALTER TABLE modeles ADD CONSTRAINT fk1__modeles FOREIGN KEY (id_membre) REFERENCES membres (id_membre); ALTER TABLE modeles ADD CONSTRAINT fk2__modeles FOREIGN KEY (id_modele_etendu) REFERENCES modeles (id_modele); ALTER TABLE necessiter ADD CONSTRAINT fk1__necessiter FOREIGN KEY (id_modele) REFERENCES modeles (id_modele); ALTER TABLE necessiter ADD CONSTRAINT fk2__necessiter FOREIGN KEY (id_piece) REFERENCES pieces (id_piece); ALTER TABLE noter ADD CONSTRAINT fk1__noter FOREIGN KEY (id_modele) REFERENCES modeles (id_modele); ALTER TABLE noter ADD CONSTRAINT fk2__noter FOREIGN KEY (id_membre) REFERENCES membres (id_membre); ALTER TABLE perdre ADD CONSTRAINT fk1__perdre FOREIGN KEY (id_membre) REFERENCES membres (id_membre); ALTER TABLE perdre ADD CONSTRAINT fk2__perdre FOREIGN KEY (id_boite) REFERENCES boites (id_boite); ALTER TABLE perdre ADD CONSTRAINT fk3__perdre FOREIGN KEY (id_piece) REFERENCES pieces (id_piece); ALTER TABLE varier ADD CONSTRAINT fk1__varier FOREIGN KEY (id_modele) REFERENCES modeles (id_modele); ALTER TABLE varier ADD CONSTRAINT fk2__varier FOREIGN KEY (id_modele_etendu) REFERENCES modeles (id_modele); -- ============================================================================ -- Indexes -- ============================================================================ -- ============================================================================