diff --git a/MoviesQuoteBot.sql b/MoviesQuoteBot.sql new file mode 100644 index 0000000..c9a50a4 --- /dev/null +++ b/MoviesQuoteBot.sql @@ -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) +); \ No newline at end of file