【问题标题】:Database lookup tables and i18n数据库查找表和 i18n
【发布时间】:2012-09-06 22:11:51
【问题描述】:

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

我的 PHP/MySQL/CodeIgniter 应用程序使用 MySQL 数据库,其中包含一堆查找表,用于查找状态和离散选择等内容。这些表具有通用形式:

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

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

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

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

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

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

【问题讨论】:

    标签: database internationalization lookup-tables


    【解决方案1】:

    没有太多反馈,但有时只是发布一个问题会迫使您更深入地思考它......

    我使用了一个非常简单的解决方案,我们继续使用语言文件来查找值。唯一的修改是查找表不包含实际描述,而是包含语言文件的查找键。因为所有的开发者都是英文流利的,所以我们选择使用英文缩写的description字段,重命名为description_key。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-05-03
      • 1970-01-01
      • 1970-01-01
      • 2011-07-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多