我将开始开发一个中等规模的应用程序,并计划它的数据库设计。 有一件事我不确定,那就是: 我将有许多需要国际化的表,例如:"membership_options, gender_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
等等,所以我可能会减少数据库表的数量,但我不确定性能如何。我不是很擅长数据库设计,请告诉我。