From c9b6b9a5ca082fe7c1b6f58d7713f785a9eb6a5c Mon Sep 17 00:00:00 2001 From: Martial Simon Date: Mon, 15 Sep 2025 01:08:27 +0200 Subject: add: graphs et rushs --- graphs/sql/daily_gazette/req01.sql | 14 ++++++++++++++ graphs/sql/daily_gazette/req02.sql | 16 ++++++++++++++++ graphs/sql/daily_gazette/req03.sql | 28 ++++++++++++++++++++++++++++ graphs/sql/daily_gazette/req04.sql | 11 +++++++++++ graphs/sql/daily_gazette/req05.sql | 2 ++ 5 files changed, 71 insertions(+) create mode 100644 graphs/sql/daily_gazette/req01.sql create mode 100644 graphs/sql/daily_gazette/req02.sql create mode 100644 graphs/sql/daily_gazette/req03.sql create mode 100644 graphs/sql/daily_gazette/req04.sql create mode 100644 graphs/sql/daily_gazette/req05.sql (limited to 'graphs/sql/daily_gazette') diff --git a/graphs/sql/daily_gazette/req01.sql b/graphs/sql/daily_gazette/req01.sql new file mode 100644 index 0000000..35ce8b8 --- /dev/null +++ b/graphs/sql/daily_gazette/req01.sql @@ -0,0 +1,14 @@ +CREATE SCHEMA rr_times; +CREATE TABLE rr_times.locales +( + language_code VARCHAR(2), + country_code VARCHAR(2), + name VARCHAR(50) UNIQUE NOT NULL, + PRIMARY KEY (language_code, country_code) +); +CREATE TABLE rr_times.translated_articles +( + id SERIAL PRIMARY KEY, + title TEXT NOT NULL, + body TEXT NOT NULL +); diff --git a/graphs/sql/daily_gazette/req02.sql b/graphs/sql/daily_gazette/req02.sql new file mode 100644 index 0000000..57eeb94 --- /dev/null +++ b/graphs/sql/daily_gazette/req02.sql @@ -0,0 +1,16 @@ +CREATE TABLE rr_times.translated_headlines +( + id SERIAL PRIMARY KEY, + title TEXT NOT NULL, + subtitle TEXT +); +CREATE TABLE rr_times.issues +( + id SERIAL PRIMARY KEY, + issued_at DATE NOT NULL, + language VARCHAR(2), + country VARCHAR(2), + FOREIGN KEY (language, country) REFERENCES rr_times.locales (language_code, country_code) ON DELETE SET NULL, + translated_headline_id INTEGER NOT NULL, + FOREIGN KEY (translated_headline_id) REFERENCES rr_times.translated_headlines (id) ON DELETE RESTRICT +); diff --git a/graphs/sql/daily_gazette/req03.sql b/graphs/sql/daily_gazette/req03.sql new file mode 100644 index 0000000..f0173c8 --- /dev/null +++ b/graphs/sql/daily_gazette/req03.sql @@ -0,0 +1,28 @@ +CREATE TYPE rr_times.rubric_theme AS ENUM +( + 'TECHNOLOGY', + 'ECONOMY', + 'HEALTH', + 'SPORT', + 'CULTURE', + 'POLITICS', + 'SCIENCE', + 'TRAVEL', + 'SOCIETY', + 'ENVIRONMENT', + 'EDUCATION', + 'MEDIA', + 'FASHION', + 'ARCHITECTURE', + 'BUSINESS', + 'SPACE' +); +CREATE TABLE rr_times.rubrics +( + id SERIAL UNIQUE NOT NULL, + theme rr_times.rubric_theme NOT NULL, + nb_columns INTEGER NOT NULL, + issue_id INTEGER NOT NULL, + FOREIGN KEY (issue_id) REFERENCES rr_times.issues (id) ON DELETE CASCADE, + PRIMARY KEY (id, theme, issue_id) +); diff --git a/graphs/sql/daily_gazette/req04.sql b/graphs/sql/daily_gazette/req04.sql new file mode 100644 index 0000000..a8e3eff --- /dev/null +++ b/graphs/sql/daily_gazette/req04.sql @@ -0,0 +1,11 @@ +CREATE TABLE rr_times.articles +( + id SERIAL PRIMARY KEY, + translated_article_id INTEGER NOT NULL, + rubric_id INTEGER NOT NULL, + language VARCHAR(2) NOT NULL, + country VARCHAR(2) NOT NULL, + FOREIGN KEY (language, country) REFERENCES rr_times.locales (language_code, country_code) ON DELETE CASCADE, + FOREIGN KEY (rubric_id) REFERENCES rr_times.rubrics (id) ON DELETE CASCADE, + FOREIGN KEY (translated_article_id) REFERENCES rr_times.translated_articles (id) ON DELETE CASCADE +); diff --git a/graphs/sql/daily_gazette/req05.sql b/graphs/sql/daily_gazette/req05.sql new file mode 100644 index 0000000..da15caa --- /dev/null +++ b/graphs/sql/daily_gazette/req05.sql @@ -0,0 +1,2 @@ +ALTER TABLE rr_times.translated_articles ADD UNIQUE (title); +ALTER TABLE rr_times.rubrics ADD CHECK (nb_columns >= 0); -- cgit v1.2.3