lego/PostgreSQL/tables/tables.sql
2024-10-24 20:24:04 +02:00

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
-- ============================================================================
-- ============================================================================