-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathcreate.sql
More file actions
51 lines (47 loc) · 2.03 KB
/
create.sql
File metadata and controls
51 lines (47 loc) · 2.03 KB
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
-- Supprimer les tables existantes
DROP TABLE IF EXISTS COMMENTAIRE CASCADE;
DROP TABLE IF EXISTS TACHE CASCADE;
DROP TABLE IF EXISTS CATEGORIE CASCADE;
DROP TABLE IF EXISTS UTILISATEUR CASCADE;
-- Création de la table UTILISATEUR
CREATE TABLE UTILISATEUR (
id_user SERIAL PRIMARY KEY,
email_user VARCHAR(255) UNIQUE NOT NULL,
prenom_user VARCHAR(100) NOT NULL,
nom_user VARCHAR(100) NOT NULL,
password VARCHAR(255) NOT NULL,
reset_token VARCHAR(255),
reset_token_exp TIMESTAMP,
remember_token VARCHAR(255),
activation_code VARCHAR(255),
is_verified BOOLEAN DEFAULT FALSE
);
-- Création de la table CATEGORIE
CREATE TABLE CATEGORIE (
id_categorie SERIAL PRIMARY KEY,
titre_categorie VARCHAR(100) NOT NULL,
id_user_categorie INT NOT NULL,
FOREIGN KEY (id_user_categorie) REFERENCES UTILISATEUR(id_user) ON DELETE CASCADE -- Si un utilisateur est supprimé, ses tâches le sont aussi
);
-- Création de la table TACHE
CREATE TABLE TACHE (
id_tache SERIAL PRIMARY KEY,
titre VARCHAR(255) NOT NULL,
description_tache TEXT,
etat_tache VARCHAR(50) NOT NULL CHECK (etat_tache IN ('À faire', 'En cours', 'Terminée')),
importance_tache VARCHAR(50) NOT NULL CHECK (importance_tache IN ('Faible', 'Modéré', 'Fort')),
echeance_tache DATE,
id_user INT NOT NULL,
id_categorie INT,
send_retard BOOLEAN DEFAULT FALSE,
FOREIGN KEY (id_user) REFERENCES UTILISATEUR(id_user) ON DELETE CASCADE, -- Si un utilisateur est supprimé, ses tâches le sont aussi
FOREIGN KEY (id_categorie) REFERENCES CATEGORIE(id_categorie) ON DELETE SET NULL -- Si une catégorie est supprimée, sa valeur est NULL dans TÂCHE
);
-- Création de la table COMMENT
CREATE TABLE COMMENTAIRE (
id_commentaire SERIAL PRIMARY KEY,
text_commentaire TEXT NOT NULL,
date_commentaire TIMESTAMP NOT NULL,
id_tache INT NOT NULL,
FOREIGN KEY (id_tache) REFERENCES TACHE(id_tache) ON DELETE CASCADE -- Si une tâche est supprimée, ses commentaires le sont aussi
);