首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >数据库存储值的全球化

数据库存储值的全球化
EN

Stack Overflow用户
提问于 2014-06-05 02:39:36
回答 1查看 597关注 0票数 5

我们使用资源文件(.resx)将我们的.NET 4.5MVC C#应用程序翻译成不同的语言。这对于位于我们视图中的静态文本非常有效。但是,我们也有从SQL数据库中提取的值需要转换。

例如:下拉列表中的值是从数据库中的表中填充的。

在数据库中转换这些值的最佳实践是什么?

EN

回答 1

Stack Overflow用户

发布于 2015-06-15 21:36:23

在我设计的上一个多语言应用程序中,我使用了一个用于语言的表,对于每个具有任何字符串类型(char、varchar等)的表,我都有一个转换表。

大致是这样的:

代码语言:javascript
复制
CREATE TABLE TblLanguage 
(
   Language_Id int identity(1,1) PRIMARY KEY,
   Language_EnglishName varchar(30),
   Language_NativeName nvarchar(30),
   CONSTRAINT UC_TblLanguage UNIQUE(Language_EnglishName) 
)

CREATE TABLE TblSomeData (
    SomeData_Id int identity(1,1) PRIMARY KEY,
    SomeData_TextColumn varchar(50),
    ....
)

CREATE TABLE TblSomeData_T ( -- _T stands for translation 
   SomeData_T_SomeData_Id int FOREIGN KEY TblSomeData(SomeData_Id),
   SomeData_T_Language_Id int FOREIGN KEY TblLanguage (Language_Id),
   SomeData_T_TextColumn nvarchar(100),
   PRIMARY KEY (SomeData_T_SomeData_Id , SomeData_T_Language_Id)
)

我的应用程序将英语作为其默认(或主要)语言,因此我将默认语言保留在基表中,仅将翻译放在翻译表中。当然,如果愿意,您可以只将字符串值保留在translations表中。请注意,这没有考虑到每个区域性的不同日期和数字格式,这是在表示层上完成的。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24045105

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档