diff options
| author | Martial Simon <msimon_fr@hotmail.com> | 2025-09-15 01:08:27 +0200 |
|---|---|---|
| committer | Martial Simon <msimon_fr@hotmail.com> | 2025-09-15 01:08:27 +0200 |
| commit | c9b6b9a5ca082fe7c1b6f58d7713f785a9eb6a5c (patch) | |
| tree | 3e4f42f93c7ae89a364e4d51fff6e5cec4e55fa9 /graphs/sql/daily_gazette | |
add: graphs et rushs
Diffstat (limited to 'graphs/sql/daily_gazette')
| -rw-r--r-- | graphs/sql/daily_gazette/req01.sql | 14 | ||||
| -rw-r--r-- | graphs/sql/daily_gazette/req02.sql | 16 | ||||
| -rw-r--r-- | graphs/sql/daily_gazette/req03.sql | 28 | ||||
| -rw-r--r-- | graphs/sql/daily_gazette/req04.sql | 11 | ||||
| -rw-r--r-- | graphs/sql/daily_gazette/req05.sql | 2 |
5 files changed, 71 insertions, 0 deletions
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); |
