思考 - 国际化系统表结构设计
处理国际化问题目前常见的有两种方案:
配置文件:每种语言定义一个对应的翻译文件
数据库存储:将翻译存储到数据库
我现在遇到的项目两种方案都涉及,现在对于数据库存储的设计是将多语言按照多行来存储,优点是增加语言不用更改表结构,但是缺点也很明显,在对国际化语言编辑的时候,需要行转列,操作起来比较麻烦。
所以我觉得对于数据库存储多语言翻译的情况,应该按照多列来存储,这样存储和操作统一,降低功能模块复杂度,可能有人顾虑语言扩展问题,我觉得吧,一个系统国际化设计多数都是确定的中英或者几种,很少会扩展,为了应对这种扩展问题,在设计表的时候,可以多定义一些预设的语言,比如语言字段设计为lan1,lan2,lan3... ,具体lan1,lan2,lan3指代什么,在代码中写一个公共方法就能方便匹配更改。
这样的设计目前应该是最简单的。
评论