У нас есть база данных PostgreSQL. И у нас есть несколько таблиц, в которых необходимо хранить определенные данные на нескольких языках (список возможных языков, к счастью, определен для всей системы).
Например, давайте начнем с:
create table blah (id serial, foo text, bar text);
Теперь давайте сделаем его многоязычным. Как насчет:
create table blah (id serial, foo_en text, foo_de text, foo_jp text,
bar_en text, bar_de text, bar_jp text);
Это было бы хорошо для полнотекстового поиска в Postgres. Просто добавьте столбец tsvector для каждого языка.
Но оптимально ли это? Может, нам стоит использовать другую таблицу для хранения переводов? Нравится:
create table texts (id serial, colspec text, obj_id int, language text, data text);
Может быть, просто может, стоит использовать что-нибудь еще - что-то из мира SQL? Любая помощь приветствуется.