Я собираюсь начать работу над приложением среднего размера, и я планирую, что это дизайн БД.
В чем я не уверен, так это в следующем.
У меня будет много таблиц, которые будут нуждаться в интернационализации, такие как: "members_options, пол_опции, language_options и т. Д."
Каждая из этих таблиц будет иметь общие поля i18n, например:
"title, alternative_title, short_description, description"
По вашему мнению, какой способ лучше всего сделать?
У вас есть таблица i18n с одинаковыми полями для каждой из таблиц, которая им понадобится?
или сделать что-то вроде:
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)
Это позволило бы мне не повторять что-то вроде:
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
и так далее, так что я, вероятно, уменьшил бы количество таблиц БД, но я не уверен в производительности. Я не очень разбираюсь в БД, поэтому, пожалуйста, дайте мне знать.