Лучший способ хранить переводы в БД MySQL - PullRequest
3 голосов
/ 24 декабря 2011

Я работаю на многоязычном сайте.

Например, таблица БД pages для 1 языка выглядит так

enter image description here

Теперь у меня есть 2 идеи по поводу переводов:

  1. Чтобы использовать все таблицы на языке по умолчанию - английском и создать вторую таблицу - translations использовать его только при необходимости.

  2. Или добавить столбцы типа, title_ru, title_en ... в существующие таблицы.

Какой способ быстрее, эффективнее? И, пожалуйста, объясните свою идею (почему вы так думаете)

1 Ответ

4 голосов
/ 24 декабря 2011

Я бы не выбрал ни одно из ваших решений.

Создание новой таблицы для каждого языка не является оптимальным, поскольку вам придется изменять каждый запрос в зависимости от того, какой язык выбран.Кроме того, что должно быть довольно простой задачей добавления нового языка, будет означать добавление новой схемы таблицы и обновление всей вашей кодовой базы.

Аналогичным образом добавление нового столбца для каждого языка имеет те же проблемы.

Почему бы просто не иметь словарную таблицу с идентификатором языка в составе PK.Напишите свой сайт, поэтому выберите текст на основе текущего идентификатора языка (1 = английский, 2 = русский и т. Д.)

Затем, чтобы переключиться на другой язык во время выполнения, достаточно установить идентификатор языка от 1 до 2в коде, и все ваши запросы будут продолжать работать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...