2013-03-24 45 views
0

我開始一個新的全球網站的項目,有很多信息。所有這些信息必須進行本地化。我建立了相當多的網站,其中大部分都只是部分用不止一種語言,但從來沒有做過如此多的本地化工作。性能注意事項多語言網站

假設我們有以下數據:

國家,城市,商店,產品和產品生產商。

在實體商店,產品和產品生產者中,可以對數據進行本地化。這個國家的語言是強制性的,但是可以添加N個額外的語言。這是用來向其他國家的人顯示信息,我也需要搜索這個。

我最初的想法是爲每個本地化表創建一個父表,只有一個ID,也許一些非本地化的元數據,然後創建一個引用父表,國家代碼和本地化字段的子表。

此結構可能會導致連接,因此可能會對性能產生不良影響。有沒有人有這種結構的經驗?我應該考慮哪些事情?還有其他方法可以更好地完成這項工作嗎?

+0

這將工作的網站本地化。 (領域的標籤等)。這是關於內容,這不是最好的方式。感謝您的建議。這個想法有趣的地方在於從數據庫中加載所有語言內容,因爲它不會經常改變。 – Patrick 2013-03-24 11:33:05

回答

1

首先,我不擔心在性能方面投入一些聯結。正如我們所說,不成熟的優化是萬惡之源。先創建一個乾淨的設計,然後擔心性能。

你真正需要做的是仔細考慮你在本地化和爲什麼。我們在LedgerSMB中所做的正是你所建議的,即如果你願意的話,也就是帶有事實的表格,然後是帶有翻譯的表格。

保持一切正常運行的關鍵是考慮減少來回發送的實際查詢的數量。運行一個可以拉動60個左右字符串的連接然後你的應用程序處理它們是一回事。性能方面,它是一個很多糟糕的是發送60個不同的查詢到數據庫每個拉1個字符串。

還要保持您的主要字符串在.po文件或類似的和使用本地化框架的那些。這不是一個或兩件事。

+0

謝謝,你的建議讓我回到了正軌。先與理想情況一起去,然後再用漂亮的表演技巧。 – Patrick 2013-03-24 22:11:44