@bezdealnick

Целесообразно ли разделять таблицы в базе при малом количестве языков?

На сайте может быть максимум 3 языка, на начальном этапе их будет всего 2, 3 язык не факт вообще что будет нужен. Для себя я выделил 2 решения этой задачи.
  1. В каждой таблице, где нужен перевод на несколько языков, добавить <наименование поля>_<язык>
    61021e346202d476544957.png
    Данный вариант мне не особо нравится, так как все-таки есть жесткая привязка в самих таблицах и она будет затруднять добавление нового языка, но с другой стороны больше языков и не будет. Это локальный сервис.

  2. Для каждой таблицы, где есть поля с переводами, делать дополнительную таблицу, например post_language, news_language и т.д.
    Этот вариант мне нравится больше, но он заставляет делить практически все таблицы на 2. Допустим, у меня есть регионы и города, которые также должны быть переведенными. В итоге таблицы превращаются вот в такое
    61021e6aa152c176759630.png
    Каждый запрос по сути нужно будет писать такой, который делает выборку из языка по-умолчанию, если на выбранный язык этот текст не переведен.


Насколько целесообразно использовать 2-ой вариант, при статичном количестве языков?
  • Вопрос задан
  • 121 просмотр
Пригласить эксперта
Ответы на вопрос 3
vilinyh
@vilinyh
> с другой стороны больше языков и не будет
:)

Вы можете вынести одну (на самом деле две) общую таблицу с "переводами":
610229bebc14b055475971.png
Опционально в исходных таблицах можно хранить сам текст, а не name_id, и за переводом ходить с текстом (как в сервис), а не идентификатором.
Ответ написан
BojackHorseman
@BojackHorseman
...в творческом отпуске...
лучше перебздеть, чем недобздеть. проверено.

пусть языков будет Х... нет, Х мало. пусть языков будет Y ©
Ответ написан
BorLaze
@BorLaze
Java developer
Утверждение "у нас есть три варианта, и четвертого быть не может" в 99% случаев разбивается о хотелку заказчика "ну, у нас уже есть три варианта, это ж не проблема - добавить четвертый?" :-)))
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы