在语言表中本地化语言名称

时间:2017-02-09 22:38:20

标签: sql sql-server tsql

我有下表包含所有语言:

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)
)

这很好用,我在很多表中使用这种方法......

但我还需要本地化语言名称......我该怎么做?

1 个答案:

答案 0 :(得分:1)

您可以通过添加父语言ID (与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             
)

或添加 Code Kind 列,引用仅包含主要语言的 languageKind 表。