Added basic SQL schema
Signed-off-by: Louis Vallat <louis@louis-vallat.xyz>
This commit is contained in:
parent
bcac5c325f
commit
61fc79e39f
72
MoviesQuoteBot.sql
Normal file
72
MoviesQuoteBot.sql
Normal 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)
|
||||
);
|
Loading…
Reference in New Issue
Block a user