Я собираюсь начать работу над приложением среднего размера, и я планирую его дизайн базы данных. В одном я не уверен. У меня будет много таблиц, которые потребуют интернационализации, например: «members_options, пол_options, language_options и т.д.»
Каждая из этих таблиц будет иметь общие поля i18n, например: "название, альтернативное_заголовок, краткое_описание, описание"
Как вы думаете, как это лучше всего сделать? Have an i18n table with the same fields for each of the tables that will need them?
or do something like:
Membership table Gender table
---------------- --------------
id | created_at id | created_at
1 - 22.03.2001 1 - 14.08.2002
2 - 22.03.2001 2 - 14.08.2002
General translation table
-------------------------
record_id | table_name | string_name | alternative_title| .... |id_language
1 - membership regular null 1 (english)
1 - membership normale null 2 (italian)
1 - gender man null 1(english)
1 -gender uomo null 2(italian)
This would avoid me repeating something like:
membership_translation table
-----------------------------
membership_id | name | alternative_title | id_lang
1 regular null 1
1 normale null 2
gender_translation table
-----------------------------
gender_id | name | alternative_title | id_lang
1 man null 1
1 uomo null 2
and so on, so i would probably reduce the number of db tables, but i'm not sure about performance.I'm not much of a DB designer, so please let me know.