Added basic SQL schema

Signed-off-by: Louis Vallat <louis@louis-vallat.xyz>
This commit is contained in:
Louis Vallat 2020-10-27 14:49:18 +01:00
parent bcac5c325f
commit 61fc79e39f

72
MoviesQuoteBot.sql Normal file
View File

@ -0,0 +1,72 @@
DROP TABLE IF EXISTS application, film, language, subtitle_line, Subtitle;
/**
Store some information on the application.
*/
CREATE TABLE IF NOT EXISTS application
(
id int GENERATED ALWAYS AS IDENTITY,
app_key text NOT NULL,
app_value text NOT NULL,
PRIMARY KEY (id),
UNIQUE (app_key)
);
/**
Film
*/
CREATE TABLE IF NOT EXISTS film
(
id int GENERATED ALWAYS AS IDENTITY,
imdb_id varchar(10) NOT NULL,
title text NOT NULL,
release_date date,
poster_link text,
PRIMARY KEY (id)
);
/**
Available languages
*/
CREATE TABLE IF NOT EXISTS language
(
id int GENERATED ALWAYS AS IDENTITY,
alpha3_b char(3) NOT NULL,
alpha3_t char(3),
alpha2 char(2),
english text NOT NULL,
french text NOT NULL,
PRIMARY KEY (id)
);
/**
Subtitles
*/
CREATE TABLE IF NOT EXISTS Subtitle
(
id int GENERATED ALWAYS AS IDENTITY,
film_id int NOT NULL,
language_id int NOT NULL,
importer varchar(37),
imported_date timestamptz NOT NULL DEFAULT now(),
UNIQUE (film_id, language_id),
PRIMARY KEY (id),
FOREIGN KEY (film_id)
REFERENCES Film (id),
FOREIGN KEY (language_id)
REFERENCES Language (id)
);
/**
Subtitle lines
*/
CREATE TABLE IF NOT EXISTS subtitle_line
(
id int GENERATED ALWAYS AS IDENTITY,
subtitle_id int NOT NULL,
dialog_line text NOT NULL,
time_code text NOT NULL,
PRIMARY KEY (id),
FOREIGN KEY (subtitle_id)
REFERENCES subtitle (id)
);