2009-12-15 72 views
0

比方說,我運行一個網站給用戶提供內容在線(一些評論爲前...),我運行此網站在幾種語言/國家(地區)下。另外,我不需要註釋可以從一個語言環境訪問到另一個語言環境。數據庫設計:用戶生成內容的國際化(評論,帖子...)

我想知道什麼之間的最佳數據庫設計以下2:

commentsenGB(ID,TXT)

commentsfrFR(ID:

  1. 每個區域創建1個表,txt)

    etc ...

  2. 把所有在同 意見表意見,但保留的 痕跡的語言環境/語言:

    評論(ID,TXT,id_lang)

我敢肯定,最佳DB-設計爲2),但我正在考慮在這種情況下,評論表在所有語言環境之間共享,因此,條目數將呈指數級增長(nb_of_locales x更快!),並且訪問表的查詢時間將會受到影響,否?或者是:

SELECT * FROM comments WHERE id_lang = engb 

完全相同的查詢(在執行時間期限)爲:

SELECT * FROM commentsenGB 

謝謝!

回答

0

請參閱選項2.簡單。並考慮你每天有多少評論?作爲一個粗略的近似值,小於10.000(如果你有更多的話,網站有足夠的現金流來獲得更多的資源:D)。 也爲language_id創建一個索引,一切都將平滑。

1

我會選擇兩項,但關鍵點是確保您的表格索引正確(因爲索引將用於檢索您的數據)。

這並不意味着這可能並不意味着在語言欄中添加索引(除非您需要根據語言檢索評論),但可能是關聯的ID(例如,您的評論可能與您的評論有關到另一個對象,說一個論壇話題)。

一般來說,我不會太擔心數據庫表的增長太大 - 數據庫的構建過於處理大量的行,並且正如您所說維護附加表的開銷可能是一個問題,對於各種原因(如維護)。

當然,還有一點需要考慮 - 您是否需要在評論級別跟蹤「langauge」?例如,考慮一下英國的用戶可能會用法語輸入評論 - 這一切都取決於您網站的性質。其他選項可能是跟蹤用戶的用戶位置?

+0

很好的精度感謝這! – bsagols 2009-12-17 11:18:07