I'm starting a project for a new global website with a lot of information. All this information must be localized. I build quite some sites and most of them are only partial in more than one language, but never did something with so much localization.
Assume we have the following data:
Country, City, Store, Product and Product producer.
In the entities Store, Product and Product producer it is possible to have the data localized. The language of the country is mandatory, but next to that N extra languages can be added. This is used to show the information to people of other countries and also I need to search about this.
My initial idea is to create a parent table per localized table with just an id and maybe some metadata that is non localizable and then create a child table with a reference to the parent table, a country code and the localized fields.
This structure potentially results in joins and thus could have a bad influence on performance. Does anyone has experience with this structure? Are there things I should take into consideration? Is there an other way of doing this better?