Я реализую базу данных для многоязычного онлайн-словаря.На данный момент у меня есть только 2 языка (RO - румынский, CS - чешский), но я думаю, что, возможно, в будущем я захочу добавить больше языков (например, EN - английский).
Веб-сайт также будет многоязычным, так что румынский пользователь может искать чешские слова, а чешский пользователь может искать румынские слова.
Я думаю, как мне реализовать TRANSLATIONS
стол для нескольких переводов.На данный момент у меня есть эта реализация, но это не тот путь, потому что в случае, если я добавлю еще 10 языков, мне нужно будет добавить еще 10 столбцов:
WORD (id,word,language_id,..)
TRANSLATIONS(id,ro_id,cs_id)
LANGUAGE(id,code)
LANGUAGE
id code
1 ro
2 cs
WORD
id word language_id
1 xxx 1
2 yyy 2
TRANSLATIONS
id ro_id cs_id
1 1 2
Я мог бы сделать таблицу как:
TRANSLATIONS(id,word_id,translation_id)
но в этом случае я не знаю, как искать перевод, и мне пришлось бы добавить оба случая:
TRANSLATIONS
id word_id translation_id
1 1 2
2 2 1
Некоторые идеи?Я надеюсь, что мое описание имеет смысл.
Спасибо.
ОБНОВЛЕНИЕ: Другим подходом может быть таблица со столбцом JSON, например:
TRANSLATIONS(id,data)
id data
1 {"ro":1,"cs":2,"another_lang": "another_id"}
, ноэто хорошая идея?