数据库查找表和i18n

时间:2012-09-06 22:11:52

标签: database internationalization lookup-tables

我无法想象是第一个遇到这个问题的人,但我还是没有找到满意的答案。

我的PHP / MySQL / CodeIgniter应用程序使用MySQL数据库和一堆查找表来处理状态和离散选择等事情。这些表格具有通用形式:

table XXXXXX
id: int (PK) 
description: varchar(100)

该网站将提供两种语言,英语和泰语。我们将使用资源包来获取静态内容,但是如何处理查找值,在大多数情况下会显示在下拉框中?

我的第一个想法是使用2个单独的描述字段:description_en和description_th,并根据存储在会话中的语言环境选择正确的描述字段。

我的同事倾向于在资源包中包含所有i18n值,这将使表中的描述字段变得多余。仅具有一个PK字段的表是nonense,这意味着相应的FK字段将“降级”为普通查找键。 或者仍然使用查找表与资源包绑定,并将英文描述保留为管理员参考?

查找表只能由管理员进行更改,而不是最终用户。

我想就此做出明智的决定,欢迎任何建议!

1 个答案:

答案 0 :(得分:1)

没有太多反馈,但有时只是发布问题迫使你在更深层次上思考它......

我使用的解决方案非常简单,我们也继续使用语言文件来查找值。唯一的修改是查找表不包含实际描述,而是包含语言文件的查找键。因为所有开发人员都是英文版的,所以我们会在描述字段中使用英文缩写,并将其重命名为description_key。

所以我认为这个问题已经解决了。