Я добавляю поддержку нескольких языков в свой db. Он имеет около 10 различных таблиц с различными структурами. Я наметил структуру, ниже которой я считаю, это хороший подход:Эффективная структура базы данных MYSQL для интернационализации
Таблица Языки:
lang_id (int)
lang_name (varchar 128)
Таблица Пример 1:
sample_1_id (int)
name (int -- tran_id)
description (int -- tran_id)
Таблица Пример 2:
sample_2_id (int)
person (int -- tran_id)
page (int -- tran_id)
Таблица Переводы:
tran_id (int)
lang_id (int)
content (text)
Однако, чтобы сделать эту работу по всем направлениям не будет столбец контента в таблице переводов должны быть типа «текст»? Если бы это было не так, что пространство для отходов, особенно когда большинство данных, хранящихся в нем, просто будет несколько символов? Есть ли способ лучше?
Непонятно из примера, как таблицы 'sample_% 'отображают либо таблицы' languages', либо 'translations' –
Thx. Просто сделал редактирование, чтобы показать, что все столбцы контента будут иметь int, соответствующий tran_id – jsuissa
. Я почти понимаю сейчас! Не получается, почему есть две таблицы образцов. Не могли бы вы управлять именами/фразами с таблицей '(name, lang_id, content)' (или '(name_id, lang_id)' и другой таблицей имен '(name_id, name)??) –