You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
128 lines
3.8 KiB
128 lines
3.8 KiB
-- Suppression des tables
|
|
DROP TABLE IF EXISTS Commentary;
|
|
DROP TABLE IF EXISTS Favorite;
|
|
DROP TABLE IF EXISTS DailyQuote;
|
|
DROP TABLE IF EXISTS Quote;
|
|
DROP TABLE IF EXISTS Caracter;
|
|
DROP TABLE IF EXISTS Source;
|
|
DROP TABLE IF EXISTS Record_quiz;
|
|
DROP TABLE IF EXISTS Quiz_Question;
|
|
DROP TABLE IF EXISTS Quiz;
|
|
DROP TABLE IF EXISTS Question;
|
|
DROP TABLE IF EXISTS Admin;
|
|
DROP TABLE IF EXISTS Users;
|
|
DROP TABLE IF EXISTS Image;
|
|
|
|
-- Création des tables
|
|
|
|
CREATE TABLE Image(
|
|
id_img NUMERIC PRIMARY KEY,
|
|
imgPath varchar(100) NOT NULL UNIQUE
|
|
);
|
|
|
|
CREATE TABLE Users(
|
|
id_user SERIAL PRIMARY KEY,
|
|
username varchar(50) NOT NULL,
|
|
email varchar(50) NOT NULL,
|
|
password varchar(100) NOT NULL,
|
|
img NUMERIC NOT NULL,
|
|
creation date NOT NULL,
|
|
CONSTRAINT unique_col UNIQUE (email),
|
|
CONSTRAINT fk_img FOREIGN KEY(img) REFERENCES Image(id_img)
|
|
);
|
|
|
|
CREATE TABLE Admin(
|
|
users SERIAL PRIMARY KEY,
|
|
CONSTRAINT fk_user FOREIGN KEY(users) REFERENCES Users(id_user)
|
|
);
|
|
|
|
CREATE TABLE Question(
|
|
id_question SERIAL PRIMARY KEY,
|
|
texte text NOT NULL UNIQUE,
|
|
answerA varchar(30) NOT NULL,
|
|
answerB varchar(30) NOT NULL,
|
|
answerC varchar(30) NOT NULL,
|
|
answerD varchar(30) NOT NULL,
|
|
cAnswer varchar(30) NOT NULL,
|
|
CONSTRAINT check_cAnswer CHECK (cAnswer = answerA OR cAnswer = answerB OR cAnswer = answerC OR cAnswer = answerD)
|
|
);
|
|
|
|
CREATE TABLE Quiz(
|
|
id_quiz SERIAL PRIMARY KEY,
|
|
nb_quest numeric
|
|
);
|
|
|
|
CREATE TABLE Quiz_Question(
|
|
quiz SERIAL NOT NULL,
|
|
question SERIAL NOT NULL,
|
|
PRIMARY KEY (quiz, question),
|
|
CONSTRAINT fk_quiz FOREIGN KEY(quiz) REFERENCES Quiz(id_quiz),
|
|
CONSTRAINT fk_question FOREIGN KEY(question) REFERENCES Question(id_question)
|
|
);
|
|
|
|
CREATE TABLE Record_quiz(
|
|
users SERIAL NOT NULL,
|
|
quiz SERIAL NOT NULL,
|
|
nbPoint numeric DEFAULT '0',
|
|
timeQ numeric DEFAULT '0',
|
|
PRIMARY KEY (users, quiz),
|
|
CONSTRAINT fk_user FOREIGN KEY(users) REFERENCES Users(id_user),
|
|
CONSTRAINT fk_quiz FOREIGN KEY(quiz) REFERENCES Quiz(id_quiz),
|
|
CONSTRAINT err_nbPoint CHECK(nbPoint >= 0),
|
|
CONSTRAINT err_timeQ CHECK(timeQ >= 0)
|
|
);
|
|
|
|
CREATE TABLE Source(
|
|
id_source SERIAL PRIMARY KEY,
|
|
title varchar(100) NOT NULL,
|
|
dateS numeric(4) NOT NULL
|
|
);
|
|
|
|
CREATE TABLE Caracter(
|
|
id_caracter SERIAL PRIMARY KEY,
|
|
caracter varchar(100) NOT NULL,
|
|
id_img NUMERIC NOT NULL
|
|
);
|
|
|
|
CREATE TABLE Quote(
|
|
id_quote SERIAL PRIMARY KEY,
|
|
content text NOT NULL,
|
|
likes numeric DEFAULT '0',
|
|
langue char(2) NOT NULL,
|
|
isValide boolean NOT NULL DEFAULT 'false',
|
|
reason varchar(100) NOT NULL,
|
|
id_caracter SERIAL NOT NULL,
|
|
id_source SERIAL NOT NULL,
|
|
id_user_verif SERIAL NOT NULL,
|
|
CONSTRAINT fk_caracter FOREIGN KEY(id_caracter) REFERENCES Caracter(id_caracter),
|
|
CONSTRAINT fk_source FOREIGN KEY(id_source) REFERENCES Source(id_source),
|
|
CONSTRAINT fk_userverif FOREIGN KEY(id_user_verif) REFERENCES Users(id_user),
|
|
CONSTRAINT err_nbLike CHECK (likes >= 0),
|
|
CONSTRAINT err_language CHECK (langue = 'fr' OR langue = 'en')
|
|
);
|
|
|
|
CREATE TABLE DailyQuote(
|
|
citation_id INT PRIMARY KEY,
|
|
FOREIGN KEY (citation_id) REFERENCES Quote(id_quote) ON DELETE CASCADE
|
|
);
|
|
|
|
|
|
CREATE TABLE Favorite(
|
|
users SERIAL NOT NULL,
|
|
quote SERIAL NOT NULL,
|
|
PRIMARY KEY (users, quote),
|
|
CONSTRAINT fk_quote FOREIGN KEY(quote) REFERENCES Quote(id_quote),
|
|
CONSTRAINT fk_user FOREIGN KEY(users) REFERENCES Users(id_user)
|
|
);
|
|
|
|
CREATE TABLE Commentary(
|
|
id_comment SERIAL PRIMARY KEY,
|
|
quote SERIAL NOT NULL,
|
|
users SERIAL NOT NULL,
|
|
dateC date NOT NULL,
|
|
comment text NOT NULL,
|
|
CONSTRAINT fk_quote FOREIGN KEY(quote) REFERENCES Quote(id_quote),
|
|
CONSTRAINT fk_user FOREIGN KEY(users) REFERENCES Users(id_user)
|
|
);
|
|
|