parent
38b9017962
commit
1e88fbc0a8
@ -1,85 +1,120 @@
|
|||||||
DROP TABLE IF EXISTS Users CASCADE;
|
-- Suppression des tables
|
||||||
DROP TABLE IF EXISTS Support CASCADE;
|
DROP TABLE IF EXISTS Commentary;
|
||||||
DROP TABLE IF EXISTS Quote CASCADE;
|
DROP TABLE IF EXISTS Favorite;
|
||||||
DROP TABLE IF EXISTS Commentary CASCADE;
|
DROP TABLE IF EXISTS Quote;
|
||||||
DROP TABLE IF EXISTS Favorite CASCADE;
|
DROP TABLE IF EXISTS Caracter;
|
||||||
DROP TABLE IF EXISTS Quiz CASCADE;
|
DROP TABLE IF EXISTS Source;
|
||||||
DROP TABLE IF EXISTS Question CASCADE;
|
DROP TABLE IF EXISTS Record_quiz;
|
||||||
DROP TABLE IF EXISTS QuizQuestions CASCADE;
|
DROP TABLE IF EXISTS Quiz_Question;
|
||||||
DROP TABLE IF EXISTS Results CASCADE;
|
DROP TABLE IF EXISTS Quiz;
|
||||||
|
DROP TABLE IF EXISTS Question;
|
||||||
|
DROP TABLE IF EXISTS Admin;
|
||||||
|
DROP TABLE IF EXISTS User;
|
||||||
|
DROP TABLE IF EXISTS Image;
|
||||||
|
|
||||||
CREATE TABLE Users (
|
-- Création des tables
|
||||||
|
|
||||||
|
CREATE TABLE Image(
|
||||||
|
id_img SERIAL PRIMARY KEY,
|
||||||
|
imgPath varchar(100) NOT NULL UNIQUE
|
||||||
|
);
|
||||||
|
|
||||||
|
CREATE TABLE User(
|
||||||
id_user SERIAL PRIMARY KEY,
|
id_user SERIAL PRIMARY KEY,
|
||||||
username varchar(50) NOT NULL,
|
username varchar(50) NOT NULL,
|
||||||
email varchar(50) NOT NULL,
|
email varchar(50) NOT NULL,
|
||||||
pssword varchar(99) NOT NULL,
|
pssword varchar(100) NOT NULL,
|
||||||
|
img SERIAL NOT NULL,
|
||||||
creation date NOT NULL,
|
creation date NOT NULL,
|
||||||
is_admin boolean NOT NULL,
|
CONSTRAINT unique_col UNIQUE (email),
|
||||||
CONSTRAINT unique_col UNIQUE (username, email)
|
CONSTRAINT fk_img FOREIGN KEY(img) REFERENCES Image(id_img)
|
||||||
);
|
);
|
||||||
|
|
||||||
|
CREATE TABLE Admin(
|
||||||
|
user SERIAL PRIMARY KEY,
|
||||||
|
CONSTRAINT fk_user FOREIGN KEY(user) REFERENCES User(id_user)
|
||||||
|
);
|
||||||
|
|
||||||
CREATE TABLE Support (
|
CREATE TABLE Question(
|
||||||
id_support SERIAL PRIMARY KEY,
|
id_question SERIAL PRIMARY KEY,
|
||||||
title varchar(99) NOT NULL,
|
texte text NOT NULL UNIQUE,
|
||||||
form varchar(30) NOT NULL,
|
answerA varchar(30) NOT NULL,
|
||||||
release numeric NOT NULL,
|
answerB varchar(30) NOT NULL,
|
||||||
CONSTRAINT type_form CHECK (form IN ('movie', 'video-game', 'novel', 'anime', 'tv'))
|
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 Quote (
|
CREATE TABLE Quiz(
|
||||||
id_quote SERIAL PRIMARY KEY,
|
id_quiz SERIAL PRIMARY KEY,
|
||||||
content text NOT NULL UNIQUE,
|
levelQ numeric NOT NULL,
|
||||||
img_path varchar(50) NOT NULL,
|
timer numeric NOT NULL
|
||||||
likes numeric NOT NULL DEFAULT 0,
|
|
||||||
time_code varchar(10) NOT NULL,
|
|
||||||
langue varchar(50) NOT NULL,
|
|
||||||
is_valid boolean NOT NULL DEFAULT true,
|
|
||||||
reason text,
|
|
||||||
user_q integer REFERENCES Users(id_user),
|
|
||||||
support integer REFERENCES Support(id_support),
|
|
||||||
CONSTRAINT reason_txt CHECK (is_valid OR reason IS NOT NULL)
|
|
||||||
);
|
);
|
||||||
|
|
||||||
CREATE TABLE Commentary (
|
CREATE TABLE Quiz_Question(
|
||||||
id_comment numeric PRIMARY KEY,
|
quiz SERIAL NOT NULL,
|
||||||
comment text NOT NULL,
|
question SERIAL NOT NULL,
|
||||||
user_c integer REFERENCES Users(id_user),
|
PRIMARY KEY (quiz, question),
|
||||||
quote_c integer REFERENCES Quote(id_quote)
|
CONSTRAINT fk_quiz FOREIGN KEY(quiz) REFERENCES Quiz(id_quiz),
|
||||||
|
CONSTRAINT fk_question FOREIGN KEY(question) REFERENCES Question(id_question)
|
||||||
);
|
);
|
||||||
|
|
||||||
CREATE TABLE Favorite (
|
CREATE TABLE Record_quiz(
|
||||||
user_f integer REFERENCES Users(id_user),
|
user SERIAL NOT NULL,
|
||||||
quote_f integer REFERENCES Quote(id_quote),
|
quiz SERIAL NOT NULL,
|
||||||
CONSTRAINT pk_favorite PRIMARY KEY (user_f, quote_f)
|
nbPoint numeric DEFAULT '0',
|
||||||
|
timeQ numeric DEFAULT '0',
|
||||||
|
PRIMARY KEY (user, quiz),
|
||||||
|
CONSTRAINT fk_user FOREIGN KEY(user) REFERENCES User(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 Quiz (
|
CREATE TABLE Source(
|
||||||
id_quiz numeric PRIMARY KEY,
|
id_source SERIAL PRIMARY KEY,
|
||||||
level numeric NOT NULL,
|
title varchar(100) NOT NULL,
|
||||||
duration numeric NOT NULL
|
dateS date NOT NULL
|
||||||
);
|
);
|
||||||
|
|
||||||
CREATE TABLE Question (
|
CREATE TABLE Caracter(
|
||||||
id_question numeric PRIMARY KEY,
|
id_caracter SERIAL PRIMARY KEY,
|
||||||
question varchar(99) NOT NULL,
|
caracter varchar(100) NOT NULL,
|
||||||
answerA varchar(99) NOT NULL,
|
img_path varchar(100) NOT NULL
|
||||||
answerB varchar(99) NOT NULL,
|
|
||||||
answerC varchar(99) NOT NULL,
|
|
||||||
answerD varchar(99) NOT NULL,
|
|
||||||
cAnswer varchar(99) NOT NULL
|
|
||||||
);
|
);
|
||||||
|
|
||||||
CREATE TABLE QuizQuestions (
|
CREATE TABLE Quote(
|
||||||
quiz_qq numeric REFERENCES Quiz(id_quiz),
|
id_quote SERIAL PRIMARY KEY,
|
||||||
question_qq numeric REFERENCES Question(id_question),
|
content text NOT NULL,
|
||||||
CONSTRAINT pk_qq PRIMARY KEY (quiz_qq, question_qq)
|
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 User(id_user),
|
||||||
|
CONSTRAINT err_nbLike CHECK (likes >= 0),
|
||||||
|
CONSTRAINT err_language CHECK (langue = 'fr' OR langue = 'en')
|
||||||
);
|
);
|
||||||
|
|
||||||
CREATE TABLE Results (
|
CREATE TABLE Favorite(
|
||||||
score numeric NOT NULL,
|
user SERIAL NOT NULL,
|
||||||
p_played numeric NOT NULL,
|
quote SERIAL NOT NULL,
|
||||||
user_r integer REFERENCES Users(id_user),
|
PRIMARY KEY (user, quote),
|
||||||
quiz_r integer REFERENCES Quiz(id_quiz),
|
CONSTRAINT fk_quote FOREIGN KEY(quote) REFERENCES Quote(id_quote),
|
||||||
CONSTRAINT pk_results PRIMARY KEY(user_r, quiz_r)
|
CONSTRAINT fk_user FOREIGN KEY(user) REFERENCES User(id_user)
|
||||||
|
);
|
||||||
|
|
||||||
|
CREATE TABLE Commentary(
|
||||||
|
id_comment SERIAL PRIMARY KEY,
|
||||||
|
quote SERIAL NOT NULL,
|
||||||
|
user 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(user) REFERENCES User(id_user)
|
||||||
);
|
);
|
Loading…
Reference in new issue