I am going to start work on a medium application and I am planning its db design. The only thing I'm not sure about. I will have many tables that will require internationalization, such as: "membership_options, gender_options, language_options, etc."
Each of these tables will share common i18n fields, for example: "title, alternative_title, short_description, description"
In your opinion, what is the best way to do this? Is there an i18n table with the same fields for each table they need?
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 allow me not to repeat 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
.., , , db, . , , , .