2017-02-09 28 views
1

私はすべての言語が含まれている次の表があります。ローカライズ言語名

create table dbo.[Languages] 
( 
    Code nvarchar (4) not null 
    constraint PK_Languages_Code primary key clustered (Code), 
    Name nvarchar (80) not null 
    constraint UQ_Languages_Name unique (Name)     
) 

私のような他のテーブルの内容ローカライズするために、このテーブルを使用します。これは正常に動作します

create table dbo.Countries ( 
    Code nvarchar (4) not null 
    constraint PK_Countries_Code primary key clustered (Code) 
) 

create table dbo.CountriesLocalized (
    Code nvarchar (4) not null, 
    LanguageCode nvarchar(4) not null, 
    Name nvarchar (120) not null 
    constraint UQ_Countries_CountryCode_LanguageCode unique (CountryCode, LanguageCode) 
) 

を私は多くのテーブルでこのアプローチを使用しています...

しかし、私はまた、言語名をローカライズする必要があります...どうすればよいですか?

+0

言語をローカライズする理由言語テーブルに「ID」と「言語名」のみが含まれている場合は名前を付けます。この表はそれ以上の正規化はできません。 – Hadi

+0

私はAPIを構築しているので、すべての言語を返す必要があり、英語、フランス語などの言語で名前を返す必要がある場合もあります。 –

+0

これは他のテーブルと同じです: 'dbo.LanguagesLocalized'は' Code' 、 'LanguageCode'と' Name'です。 'dbo.Languages'から' Name'を削除するか、規約を選択することができます。常にElbonianを使用して、各言語に少なくとも1つの名前を付けるようにしてください。 'unions'は、' LanguagesLocalized'にローカライズされた名前がない場合、 'Languages'からデフォルト名を拾うことができます。 – HABO

答えて

1

あなたはCode

create table dbo.[Languages] 
( 
    Code nvarchar (4) not null 
    constraint PK_Languages_Code primary key clustered (Code), 
    Name nvarchar (80) not null 
    constraint UQ_Languages_Name unique (Name)  , 
    ParentCode nvarchar(4) null    
) 

それともを参照してくださいコード種類列を追加すると、再帰的な関係である親言語IDを追加することにより、階層テーブルとしてお使いの言語テーブルを構築することができますlanguageKindメイン言語のみを含むテーブル。

関連する問題