I have seen a couple of questions around this problem (e.g. here and here) but just wanted to clarify an alternative approach
What we have ATM
Product
- Id
- Name
And now we need to add support for few languages ( this is a SaaS solution and a given customer might have couple of languages max 3-4. And each SaaS tenant have their own database)
In all the other proposed solutions, it involves modifying the schema ( in one way or the other). And worse, the search becomes much more complicated. Instead, what I was thinking is storing all translatable values in the same column (in this case : Name). So a typical row which has content for two languages would look like below
Id | Name
11 | en : Banana ∆ es: Plátano ∆ zh : 香蕉
∆ - is an example splitter ( this will be a proper special character which will not conflict with user inputs )
This way the search is much more simplified and the amount of change I have do on the schema is minimal. Everything else ( update/retrieval based on selected users locale can be managed via the code(C#) )
So my question is, is this an acceptable approach ? If not, what problems you see in this ?