parent
38b9017962
commit
1e88fbc0a8
@ -1,85 +1,120 @@
|
||||
DROP TABLE IF EXISTS Users CASCADE;
|
||||
DROP TABLE IF EXISTS Support CASCADE;
|
||||
DROP TABLE IF EXISTS Quote CASCADE;
|
||||
DROP TABLE IF EXISTS Commentary CASCADE;
|
||||
DROP TABLE IF EXISTS Favorite CASCADE;
|
||||
DROP TABLE IF EXISTS Quiz CASCADE;
|
||||
DROP TABLE IF EXISTS Question CASCADE;
|
||||
DROP TABLE IF EXISTS QuizQuestions CASCADE;
|
||||
DROP TABLE IF EXISTS Results CASCADE;
|
||||
-- Suppression des tables
|
||||
DROP TABLE IF EXISTS Commentary;
|
||||
DROP TABLE IF EXISTS Favorite;
|
||||
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 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,
|
||||
username 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,
|
||||
is_admin boolean NOT NULL,
|
||||
CONSTRAINT unique_col UNIQUE (username, email)
|
||||
CONSTRAINT unique_col UNIQUE (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 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 Support (
|
||||
id_support SERIAL PRIMARY KEY,
|
||||
title varchar(99) NOT NULL,
|
||||
form varchar(30) NOT NULL,
|
||||
release numeric NOT NULL,
|
||||
CONSTRAINT type_form CHECK (form IN ('movie', 'video-game', 'novel', 'anime', 'tv'))
|
||||
CREATE TABLE Quiz(
|
||||
id_quiz SERIAL PRIMARY KEY,
|
||||
levelQ numeric NOT NULL,
|
||||
timer numeric NOT NULL
|
||||
);
|
||||
|
||||
CREATE TABLE Quote (
|
||||
id_quote SERIAL PRIMARY KEY,
|
||||
content text NOT NULL UNIQUE,
|
||||
img_path varchar(50) 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 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 Commentary (
|
||||
id_comment numeric PRIMARY KEY,
|
||||
comment text NOT NULL,
|
||||
user_c integer REFERENCES Users(id_user),
|
||||
quote_c integer REFERENCES Quote(id_quote)
|
||||
CREATE TABLE Record_quiz(
|
||||
user SERIAL NOT NULL,
|
||||
quiz SERIAL NOT NULL,
|
||||
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 Favorite (
|
||||
user_f integer REFERENCES Users(id_user),
|
||||
quote_f integer REFERENCES Quote(id_quote),
|
||||
CONSTRAINT pk_favorite PRIMARY KEY (user_f, quote_f)
|
||||
CREATE TABLE Source(
|
||||
id_source SERIAL PRIMARY KEY,
|
||||
title varchar(100) NOT NULL,
|
||||
dateS date NOT NULL
|
||||
);
|
||||
|
||||
CREATE TABLE Quiz (
|
||||
id_quiz numeric PRIMARY KEY,
|
||||
level numeric NOT NULL,
|
||||
duration numeric NOT NULL
|
||||
CREATE TABLE Caracter(
|
||||
id_caracter SERIAL PRIMARY KEY,
|
||||
caracter varchar(100) NOT NULL,
|
||||
img_path varchar(100) NOT NULL
|
||||
);
|
||||
|
||||
CREATE TABLE Question (
|
||||
id_question numeric PRIMARY KEY,
|
||||
question varchar(99) NOT NULL,
|
||||
answerA varchar(99) NOT NULL,
|
||||
answerB varchar(99) NOT NULL,
|
||||
answerC varchar(99) NOT NULL,
|
||||
answerD varchar(99) NOT NULL,
|
||||
cAnswer varchar(99) 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 User(id_user),
|
||||
CONSTRAINT err_nbLike CHECK (likes >= 0),
|
||||
CONSTRAINT err_language CHECK (langue = 'fr' OR langue = 'en')
|
||||
);
|
||||
|
||||
CREATE TABLE QuizQuestions (
|
||||
quiz_qq numeric REFERENCES Quiz(id_quiz),
|
||||
question_qq numeric REFERENCES Question(id_question),
|
||||
CONSTRAINT pk_qq PRIMARY KEY (quiz_qq, question_qq)
|
||||
CREATE TABLE Favorite(
|
||||
user SERIAL NOT NULL,
|
||||
quote SERIAL NOT NULL,
|
||||
PRIMARY KEY (user, quote),
|
||||
CONSTRAINT fk_quote FOREIGN KEY(quote) REFERENCES Quote(id_quote),
|
||||
CONSTRAINT fk_user FOREIGN KEY(user) REFERENCES User(id_user)
|
||||
);
|
||||
|
||||
CREATE TABLE Results (
|
||||
score numeric NOT NULL,
|
||||
p_played numeric NOT NULL,
|
||||
user_r integer REFERENCES Users(id_user),
|
||||
quiz_r integer REFERENCES Quiz(id_quiz),
|
||||
CONSTRAINT pk_results PRIMARY KEY(user_r, quiz_r)
|
||||
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