Ответ 1
Использование только одной таблицы для всех переводов может быстро привести к серьезным проблемам производительности и сложности для любой операции (select/insert/update/delete); просто попробуйте понять, что я имею в виду.
Тогда я бы пошел на следующий метод (две таблицы на "переводимый" объект), что, по-видимому, является хорошим балансом между проблемами производительности, сложности и обслуживания.
product
- id (PK)
- number1
- number2
- date1
- date2
...
product_i18n
- id (PK)
- product_id (FK)
- language_id (FK)
- string1
- string2
...
language
- id (PK)
- name
Проверьте, как это делается с Propel ORM (PHP): http://propelorm.org/blog/2011/01/11/propel-gets-i18n-behavior-and-why-it-matters.html
НТН