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

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)
);