I am designing a multi-language database for a piece of software with the following features:
- data used in every country differs from other countries
- data used in every country will be in 2 languages: English, and the native language
- there will be a central place to control updating and deleting all data in all countries
I have 2 choices for these multi-language databases:
Tables of each entity for each country will have a column for English and native language
- I think that way makes it easy and fast to update every country's data, and I can separate its own tables only to be used with software there.
- But that means if I have 15 countries, I have to repeat tables 15 times.
A table for all languages as a reference, linked to a table for each entity that contains data for all countries in all languages
- It will make my database simpler, with a smaller number of tables, and simpler for retrieving data.
- But it will be dangerous to have all data for one entity for all countries in one table. So any attack or mistake can destroy my work for all these countries.
- Can I arrange data in the same table to make every row of the same languages together?
- Can I isolate data required for every country from central tables to be used with software ONLY there?
but it will be dangerous to have all data of one entity for all countries in one table ...so any attack or mistake can destroy my work for all these countries
You should have backup for any database holding critical data. This is a must! Not a best practice, or a recommendation, but a must!