Локализация базы данных

У меня есть несколько таблиц базы данных, которые содержатname а такжеdescription столбцы, которые должны быть локализованы. Моя первоначальная попытка разработать схему БД, которая бы поддерживала это, была чем-то вроде:

product
-------
id
name
description


local_product
-------
id
product_id
local_name
local_description
locale_id


locale
------
id
locale

Однако это решение требует новогоlocal_ таблица для каждой таблицы, которая содержитname и столбцы описания, которые требуютlocalization, В попытке избежать этих издержек я изменил схему так, чтобы только одинlocalization стол нужен

product
-------
id
localization_id


localization    
-------
id    
local_name
local_description
locale_id


locale
------
id
locale

Вот'Пример данных, которые будут храниться в этой схеме, когда есть 2 таблицы (продукт и страна), требующие локализации:

страна

id,     localization_id
-----------------------
1,      5

товар

id,     localization_id
-----------------------
1,      2

локализация

id,     local_name,   local_description,     locale_id
------------------------------------------------------
2,      apple,        a delicious fruit,     2
2,      pomme,        un fruit délicieux,    3
2,      apfel,        ein köstliches Obst,   4
5,      ireland,      a small country,       2
5,      irlande,      un petite pay,         3

место действия

id,     locale
--------------
2,      en
3,      fr
4,      de

Обратите внимание, что составной первичный ключlocalization стол(id, locale_id), но внешний ключ вproduct Таблица относится только к первому элементу этого соединения ПК. Это похоже на 'плохая вещь от POV нормализации.

Можно ли как-то решить эту проблему или, альтернативно, существует ли совершенно другая схема, которая поддерживает локализацию без создания отдельной таблицы для каждой локализуемой таблицы?

Обновить: Ряд респондентов предложили решение, которое требует создания отдельной таблицы для каждой локализуемой таблицы. Тем не менее, это именно то, что яЯ пытаюсь избежать. Схема I 'мы предложили выше почти решает проблему к моему удовлетворению, но яЯ недоволен тем, чтоlocalization_id внешние ключи относятся только к части соответствующего первичного ключа вlocalization Таблица.

Спасибо дон

Ответы на вопрос(4)

Ваш ответ на вопрос