2012-09-06 70 views
1

我無法想象是第一個遇到這個問題,但我仍然沒有找到滿意的答案。數據庫查詢表和i18n

我的PHP/MySQL/CodeIgniter應用程序使用MySQL數據庫和一堆查找表來處理狀態和離散選項。這些表具有通用形式:

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

該網站將有兩種語言,英語和泰語。我們將爲靜態內容使用一個資源包,但如何處理查找值,這在大多數情況下會在下拉框中顯示?

我的第一個想法是使用2個單獨的描述字段:description_en和description_th,並根據會話中存儲的語言環境選擇正確的字段。

我的同事傾向於在資源包中包含所有i18n值,這會使表中的描述字段變得冗餘。只有一個PK字段的表是nonense,這意味着對應的FK字段將被「降級」爲普通的查找關鍵字。 或仍然使用查找表與資源包結合,並將英文說明保留爲管理員參考?

查找表只能由管理員修改,而不能由最終用戶修改。

我想對此做出明智的決定,因此歡迎任何建議!

回答

1

沒有太多的反饋,但有時僅僅只是張貼問題迫使你去想它在更深的層次......

我使用了一個解決方案,它是非常簡單的,我們一直使用的語言文件也爲查找值。唯一的修改是查找表不包含實際的描述,但包含語言文件的查找鍵。由於所有開發者都是英文流利的,所以我們推薦使用描述字段的英文縮寫,將其重新命名爲description_key。

所以我認爲這個問題已經解決。