1
0
Fork 0
database/20230218130437_translations.up.sql

29 lines
908 B
MySQL
Raw Normal View History

2023-02-18 08:13:28 -05:00
BEGIN;
CREATE TABLE translations (
-- name type constraints
id BIGSERIAL PRIMARY KEY,
word_id BIGINT NOT NULL REFERENCES words (id),
index BIGINT NOT NULL,
-- CONSTRAINT name CHECK (condition)
CONSTRAINT index_is_not_negative CHECK (index >= 0)
);
CREATE TABLE translation_texts (
-- name type constraints
id BIGSERIAL PRIMARY KEY,
translation_id BIGINT NOT NULL REFERENCES translations (id),
lang_id BIGINT NOT NULL REFERENCES languages (id),
value TEXT NOT NULL,
-- CONSTRAINT name CHECK (condition)
CONSTRAINT value_is_sane_text CHECK (is_sane_text(value))
2023-02-18 08:13:28 -05:00
);
CREATE UNIQUE INDEX translations_word_index ON translations (word_id, index);
CREATE UNIQUE INDEX translation_texts_translation_lang
ON translation_texts (translation_id, lang_id);
COMMIT;