diff --git a/.gitignore b/.gitignore index f533cdd..cb4f8db 100644 --- a/.gitignore +++ b/.gitignore @@ -11,6 +11,6 @@ __pycache__/ *.pyc data-pipeline/kaikki-source-files/ -data-pipeline/db/pipeline.db +data-pipeline/db/staging.db data-pipeline/.env .aider* diff --git a/data-pipeline/db/schema.sql b/data-pipeline/db/schema.sql new file mode 100644 index 0000000..45fe1bb --- /dev/null +++ b/data-pipeline/db/schema.sql @@ -0,0 +1,30 @@ +CREATE TABLE words ( + id TEXT PRIMARY KEY, + headword TEXT NOT NULL, + language_code TEXT NOT NULL, + pos TEXT NOT NULL, + created_at TEXT DEFAULT (datetime('now')), + UNIQUE(headword, language_code, pos) +); + +CREATE TABLE senses ( + id TEXT PRIMARY KEY, + word_id TEXT NOT NULL REFERENCES words(id), + sense_index INTEGER NOT NULL DEFAULT 0, + difficulty TEXT NOT NULL, + definitions TEXT NOT NULL DEFAULT '[]', + examples TEXT NOT NULL DEFAULT '[]', + created_at TEXT DEFAULT (datetime('now')), + UNIQUE(word_id, sense_index) +); + +CREATE TABLE translations ( + id TEXT PRIMARY KEY, + sense_id TEXT NOT NULL REFERENCES senses(id), + target_language_code TEXT NOT NULL, + translation TEXT NOT NULL, + gender TEXT, + difficulty TEXT NOT NULL, + created_at TEXT DEFAULT (datetime('now')), + UNIQUE(sense_id, target_language_code, translation) +);