问题描述
|
我有一个面向英国市场编写的应用程序,该应用程序目前仅支持英语(英国),并且客户希望将部分应用程序部署到非英国站点,并将数据同步回英国总部。
我可以使用资源文件和本地区域性信息来转换应用程序标签和消息,但是想知道如何转换数据库绑定的数据。
例如。
这是基于总部的表
tblFault
ID ; Description
1 ; Not Functional
2 ; Build Fault
3 ; Leak
4 ; Aesthetics
5 ; Testing
如果我要将数据转换为非英国语言,则可以替换描述,但是如果数据未同步,这会引起一些问题吗?
我应该在表格的另一列中扩展其他语言,然后使用当地的语言来更改选择吗?
tblFault
ID ; Description-EN ; Descrption-US ; Description-DE etc
1 ; Not Functional ; ;
2 ; Build Fault ; ;
3 ; Leak ; ;
4 ; Aesthetics ; ;
5 ; Testing ; ;
您会推荐哪种方法?
谢谢
菲尔
解决方法
由于您在故障及其描述之间具有1:n的关系,因此最干净的解决方案是创建一个子表:
tblFault
--------
FaultID ; some other fields
1 ; ...
2 ; ...
3 ; ...
4 ; ...
5 ; ...
tblFault_Description
--------------------
FaultID ; lang ; Description
1 ; en ; Not Functional
1 ; de ; Funktioniert nicht
2 ; en ; ...
, 那绝对是一种方法。
我以前在这种情况下使用的另一种方法是创建\“ LanguageId \”列。
通常我会有这样的事情:
StringId,LanguageId,Description
1 0 Hello
1 1 Hola
1 2 Bon Jour
这使我能够编写一个查询,例如,如果字符串35(例如)不具有我要查找的语言,我仍然可以提供英语。以为是总比没有好。
这种方法的缺点是复合主键和一些联接逻辑。
, 更可能是这样的:
tblFault
ID ; Lang ; Description
1 ; EN ; Not Functional
...