Страницы

Поиск по вопросам

четверг, 29 ноября 2018 г.

Проектирование БД для многоязычного проекта

Мой мозг, размягченный NoSQL, совсем отказывается проектировать нормальную реляционную БД.
Задача такова:
Есть сущности: карточки, теги, категории. Возможно, позже появится что-то еще; У каждой сущности есть связи, которые не зависят от языка; У каждой сущности есть текстовые поля, которые надо переводить (количество языков не велико, в начале проекта будет 2, позже добавится еще 2-3).
Нужно спроектировать базу так, что бы минимизировать время работы запросов на получение отдельной карточки и списка карточек с переводом текстовых полей на нужный язык.
Стек технологий проекта: PostgreSQL, SQLAlchemy, Flask
UPDATE
gettext не подойдет, так как требуется перевод для описаний и т.п. с возможностью редактирования в админке.


Ответ

Набор языков фиксированный? Если да, добавляйте локализованные поля к полям, которым нужен перевод, постфиксы *_ru, *_en и т.д.
Если нет - создайте что нибудь типа translation: id, key, value - и используйте ссылки на них, вместо прямых значений полей.

Комментариев нет:

Отправить комментарий