[READ-ONLY] Mirror of https://github.com/mrgnw/ananas. learn multiple languages at once ananas.xcc.es
0

Configure Feed

Select the types of activity you want to include in your feed.

ananas / scripts / countries.sql
1.4 kB 40 lines
1-- SQLite schema for countries data 2CREATE TABLE IF NOT EXISTS countries ( 3 id TEXT PRIMARY KEY, -- Wikidata ID 4 name TEXT NOT NULL, -- Country name in English 5 code TEXT NOT NULL, -- ISO 3166-1 alpha-2 code 6 flag TEXT NOT NULL, -- Emoji flag 7 created_at DATETIME DEFAULT CURRENT_TIMESTAMP, 8 updated_at DATETIME DEFAULT CURRENT_TIMESTAMP 9); 10 11CREATE TABLE IF NOT EXISTS country_languages ( 12 country_id TEXT NOT NULL, 13 language_id TEXT NOT NULL, 14 speakers INTEGER, -- Number of speakers in thousands 15 is_official BOOLEAN, -- Whether it's an official language 16 created_at DATETIME DEFAULT CURRENT_TIMESTAMP, 17 updated_at DATETIME DEFAULT CURRENT_TIMESTAMP, 18 PRIMARY KEY (country_id, language_id), 19 FOREIGN KEY (country_id) REFERENCES countries(id), 20 FOREIGN KEY (language_id) REFERENCES languages(iso) 21); 22 23-- Indexes 24CREATE INDEX IF NOT EXISTS idx_countries_code ON countries(code); 25CREATE INDEX IF NOT EXISTS idx_country_languages_language ON country_languages(language_id); 26 27-- Views 28CREATE VIEW IF NOT EXISTS v_country_languages AS 29SELECT 30 c.name as country_name, 31 c.code as country_code, 32 c.flag as country_flag, 33 l.langLabel as language_name, 34 l.iso as language_code, 35 cl.speakers as speakers_k, 36 cl.is_official 37FROM countries c 38JOIN country_languages cl ON c.id = cl.country_id 39JOIN languages l ON cl.language_id = l.iso 40ORDER BY c.name, cl.speakers DESC NULLS LAST;