Как внедрить интернационализацию словарей в БД - PullRequest
0 голосов
/ 29 августа 2011

У меня есть БД со многими словарями. До этого момента он был написан на английском языке, но клиент хочет внедрить интернационализацию на уровне БД (для поддержки испанского и британского английского). Поэтому пользователи, которые будут входить в нашу систему, должны видеть весь текст в зависимости от его настроек интернационализации.

Большинство таблиц словаря представлены в форме:

CREATE TABLE UserPermissionTypes (
Id [INT],  
Title NVARCHAR(100),  
Description NVARCHAR (500) )

В данный момент я думаю о создании дублированных таблиц для каждого словаря в форме, похожей на эту:

CREATE TABLE UserPermissionTypesTranslations (
UserPermissionTypesId [INT],
LanguageCodeId [INT]
Title NVARCHAR(100),  
Description NVARCHAR (500), )

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

1 Ответ

1 голос
/ 29 августа 2011

Как насчет создания дополнительной таблицы для переводов и использования ее идентификатора вместо текстов (изменено после комментариев):

    CREATE TABLE UserPermissions ( 
    Id [INT],   
    TitleTR [INT],   
    DescriptionTR [INT] ) 

    CREATE TABLE Translations(
    Id [INT],
    LanguageID [INT],
    Text NVARCHAR(500)
    )

select tr.Text as title, tr2.Text as description from UserPermissions
join Translations tr on tr.id=UserPermissions.titleTR and languageid=:LANG
join Translations tr2 on tr2.id=UserPermissions.descriptionTR and languageid=:LANG
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...