Локализация базы данных
У меня есть несколько таблиц базы данных, которые содержат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
Таблица.
Спасибо дон