Многоязычный сайт с нереляционной базой данных - PullRequest
3 голосов
/ 10 августа 2011

Может кто-нибудь помочь советом, как организовать нереляционную базу данных для многоязычного сайта? Здесь есть несколько вопросов об этом, но с MySQL и т. Д. «Мультиязычность» не только статична (мы можем сделать это с помощью фреймворка), но и с динамическим контентом. И на самом деле мы не знаем, на скольких языках пользователь хочет создавать контент: может создать «Имя» для объекта и перевести его на столько языков, сколько он хочет.

Наша команда использует Java Spring Framework на GAE с Objectify. Но я думаю, что это не важно - какие инструменты мы используем.

Или, может быть, базы данных nosql на самом деле не подходят для таких задач.

p.s. извините за плохой английский

1 Ответ

1 голос
/ 10 августа 2011

Если бы я не понял неправильно, я думаю, что это лучший способ, который я нашел для Multi-lang DB (я использую MySQL, но это было бы то же самое):

  • Прежде всего, вы должны избегать хранения длинных строк на главной таблице (таких как имя, описание).Вы можете хранить их в разных таблицах.Ваша таблица будет быстрее.

  • Вы можете использовать таблицу перевода для всех ваших объектов (таких как продукт, заказ, доставка и т. Д.)

Таблица перевода:

translation_id    obj_id     lang_code    field        translation
------------------------------------------------------------------------
      1              2          EN        name      Million Dollar Baby
      2              2          TR        name      Milyonluk Bebek

obj_id фактически ссылается на product_id и может быть связано с product_id.Я предпочитаю obj_id, потому что мне легко контролировать все таблицы перевода без запоминания order_id, product_id и т. Д.

Надеюсь, это поможет.

...