211 lines
7.4 KiB
SQL
211 lines
7.4 KiB
SQL
-- ============================================================================
|
|
-- Base Name : FREE-BRICKS
|
|
-- SGBD Name : PostgreSQL
|
|
-- CREATION Date : 24/10/24
|
|
-- ============================================================================
|
|
|
|
DROP TABLE IF EXISTS acheter CASCADE;
|
|
DROP TABLE IF EXISTS avoir_motif CASCADE;
|
|
DROP TABLE IF EXISTS boites CASCADE;
|
|
DROP TABLE IF EXISTS colorer CASCADE;
|
|
DROP TABLE IF EXISTS construire CASCADE;
|
|
DROP TABLE IF EXISTS contenir CASCADE;
|
|
DROP TABLE IF EXISTS couleurs CASCADE;
|
|
DROP TABLE IF EXISTS enregistrer CASCADE;
|
|
DROP TABLE IF EXISTS etre CASCADE;
|
|
DROP TABLE IF EXISTS etre_complexe CASCADE;
|
|
DROP TABLE IF EXISTS etre_forme CASCADE;
|
|
DROP TABLE IF EXISTS fils CASCADE;
|
|
DROP TABLE IF EXISTS illustrations CASCADE;
|
|
DROP TABLE IF EXISTS marques CASCADE;
|
|
DROP TABLE IF EXISTS messages CASCADE;
|
|
DROP TABLE IF EXISTS modeles CASCADE;
|
|
DROP TABLE IF EXISTS necessiter CASCADE;
|
|
DROP TABLE IF EXISTS noter CASCADE;
|
|
DROP TABLE IF EXISTS perdre CASCADE;
|
|
DROP TABLE IF EXISTS varier CASCADE;
|
|
|
|
-- ============================================================================
|
|
-- Tables
|
|
-- ============================================================================
|
|
|
|
CREATE TABLE acheter
|
|
(
|
|
id_membre SERIAL NOT NULL,
|
|
id_piece SERIAL NOT NULL,
|
|
quantite_acheter INTEGER ,
|
|
CONSTRAINT pk__acheter PRIMARY KEY (id_membre, id_piece)
|
|
);
|
|
|
|
CREATE TABLE avoir_motif
|
|
(
|
|
id_piece SERIAL NOT NULL,
|
|
id_motif SERIAL NOT NULL,
|
|
CONSTRAINT pk__avoir_motif PRIMARY KEY (id_piece, id_motif)
|
|
);
|
|
|
|
CREATE TABLE boites
|
|
(
|
|
id_boite SERIAL NOT NULL,
|
|
titre_boite varchar(255) NOT NULL,
|
|
date_boite DATE ,
|
|
CONSTRAINT pk__boites PRIMARY KEY (id_boite)
|
|
);
|
|
|
|
CREATE TABLE colorer
|
|
(
|
|
id_piece SERIAL NOT NULL,
|
|
id_couleur SERIAL NOT NULL,
|
|
CONSTRAINT pk__colorer PRIMARY KEY (id_piece, id_couleur)
|
|
);
|
|
|
|
CREATE TABLE construire
|
|
(
|
|
id_boite SERIAL NOT NULL,
|
|
id_modele SERIAL NOT NULL,
|
|
CONSTRAINT pk__construire PRIMARY KEY (id_boite, id_modele)
|
|
);
|
|
|
|
CREATE TABLE contenir
|
|
(
|
|
id_boite SERIAL NOT NULL,
|
|
id_piece SERIAL NOT NULL,
|
|
quantite_contenir INTEGER NOT NULL,
|
|
CONSTRAINT pk__contenir PRIMARY KEY (id_boite, id_piece)
|
|
);
|
|
|
|
CREATE TABLE couleurs
|
|
(
|
|
id_couleur SERIAL NOT NULL,
|
|
nom_couleur VARCHAR(255) ,
|
|
CONSTRAINT pk__couleurs PRIMARY KEY (id_couleur)
|
|
);
|
|
|
|
CREATE TABLE enregistrer
|
|
(
|
|
id_boite SERIAL NOT NULL,
|
|
id_membre SERIAL NOT NULL,
|
|
quantite_enregistrer INTEGER NOT NULL,
|
|
CONSTRAINT pk__enregistrer PRIMARY KEY (id_boite, id_membre)
|
|
);
|
|
|
|
CREATE TABLE etre
|
|
(
|
|
id_piece SERIAL NOT NULL,
|
|
id_marque SERIAL NOT NULL,
|
|
CONSTRAINT pk__etre PRIMARY KEY (id_piece, id_marque)
|
|
);
|
|
|
|
CREATE TABLE etre_complexe
|
|
(
|
|
id_piece SERIAL NOT NULL,
|
|
id_piece_complexe SERIAL NOT NULL,
|
|
CONSTRAINT pk__etre_complexe PRIMARY KEY (id_piece, id_piece_complexe)
|
|
);
|
|
|
|
CREATE TABLE etre_forme
|
|
(
|
|
id_forme SERIAL NOT NULL,
|
|
id_piece SERIAL NOT NULL,
|
|
CONSTRAINT pk__etre_forme PRIMARY KEY (id_forme, id_piece)
|
|
);
|
|
|
|
CREATE TABLE fils
|
|
(
|
|
id_fil SERIAL NOT NULL,
|
|
id_modele SERIAL NOT NULL,
|
|
CONSTRAINT pk__fils PRIMARY KEY (id_fil)
|
|
);
|
|
|
|
CREATE TABLE illustrations
|
|
(
|
|
id_illustration SERIAL NOT NULL,
|
|
url_illustration VARCHAR(2048) ,
|
|
id_modele SERIAL NOT NULL,
|
|
CONSTRAINT pk__illustrations PRIMARY KEY (id_illustration)
|
|
);
|
|
|
|
CREATE TABLE marques
|
|
(
|
|
id_marque SERIAL NOT NULL,
|
|
nom_marque VARCHAR(255) ,
|
|
CONSTRAINT pk__marques PRIMARY KEY (id_marque)
|
|
);
|
|
|
|
CREATE TABLE messages
|
|
(
|
|
id_message SERIAL NOT NULL,
|
|
contenu_message VARCHAR(255) ,
|
|
id_membre SERIAL NOT NULL,
|
|
id_fil SERIAL NOT NULL,
|
|
id_message_2 SERIAL NOT NULL,
|
|
CONSTRAINT pk__messages PRIMARY KEY (id_message)
|
|
);
|
|
|
|
CREATE TABLE modeles
|
|
(
|
|
id_modele SERIAL NOT NULL,
|
|
nom_modele VARCHAR(255) ,
|
|
url_notice_modele VARCHAR(2048) ,
|
|
id_membre SERIAL NOT NULL,
|
|
id_modele_2 SERIAL NOT NULL,
|
|
CONSTRAINT pk__modeles PRIMARY KEY (id_modele)
|
|
);
|
|
|
|
CREATE TABLE necessiter
|
|
(
|
|
id_modele SERIAL NOT NULL,
|
|
id_piece SERIAL NOT NULL,
|
|
quantite_necessiter INTEGER NOT NULL,
|
|
CONSTRAINT pk__necessiter PRIMARY KEY (id_modele, id_piece)
|
|
);
|
|
|
|
CREATE TABLE noter
|
|
(
|
|
id_modele SERIAL NOT NULL,
|
|
id_membre SERIAL NOT NULL,
|
|
note_noter VARCHAR(255) NOT NULL,
|
|
CONSTRAINT pk__noter PRIMARY KEY (id_modele, id_membre)
|
|
);
|
|
|
|
CREATE TABLE perdre
|
|
(
|
|
id_membre SERIAL NOT NULL,
|
|
id_boite SERIAL NOT NULL,
|
|
id_piece SERIAL NOT NULL,
|
|
quantite_perdre INTEGER NOT NULL,
|
|
CONSTRAINT pk__perdre PRIMARY KEY (id_membre, id_boite, id_piece)
|
|
);
|
|
|
|
CREATE TABLE varier
|
|
(
|
|
id_modele SERIAL NOT NULL,
|
|
id_modele_2 SERIAL NOT NULL,
|
|
CONSTRAINT pk__varier PRIMARY KEY (id_modele, id_modele_2)
|
|
);
|
|
|
|
-- ============================================================================
|
|
-- Foreign Keys
|
|
-- ============================================================================
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
-- ============================================================================
|
|
-- Indexes
|
|
-- ============================================================================
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
-- ============================================================================
|
|
|