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.
77 lines
2.4 KiB
77 lines
2.4 KiB
|
|
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 QuizQuestions CASCADE;
|
|
DROP TABLE IF EXISTS Quiz CASCADE;
|
|
DROP TABLE IF EXISTS Question CASCADE;
|
|
|
|
CREATE TABLE Users (
|
|
id_user SERIAL PRIMARY KEY,
|
|
username varchar(50) NOT NULL,
|
|
email varchar(50) NOT NULL,
|
|
phone varchar(10) NOT NULL,
|
|
pssword varchar(99) NOT NULL,
|
|
creation date NOT NULL,
|
|
CONSTRAINT unique_col UNIQUE (username, email, phone)
|
|
);
|
|
|
|
|
|
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 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 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 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 Quiz (
|
|
id_quiz numeric PRIMARY KEY,
|
|
level numeric NOT NULL,
|
|
duration numeric 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 QuizQuestions (
|
|
quiz_qq numeric REFERENCES Quiz(id_quiz),
|
|
question_qq numeric REFERENCES Question(id_question),
|
|
CONSTRAINT pk_qq PRIMARY KEY (quiz_qq, question_qq)
|
|
); |