2012-08-27 63 views
0

我正在開發一個帶有各種語言的詞典網站,我可以將這個語言的每個人翻譯成其他語言,我目前使用mySQL,如果我想將英語翻譯爲中文,我有一個表「en_ch」,其中包含所有帶有翻譯的單詞,每個表都有大約90.000 - 150.000個條目。所以mySQL非常慢,並且很難映射所有的屬性,一個翻譯可以包含元信息,例如europa可能意味着大陸或木星的月亮,所以我有一個可以是'Geo'的類型標記astro''med'等等...用戶也可以評價翻譯是好還是壞,並且一種語言中的一個詞可以具有多種其他語言的翻譯,或者可以僅僅一種,如果我使用數據庫標準化,事情變得真正如果我在元信息上查詢,速度會變慢。從mySQL切換到noSQL - 詞典網站

所以我認爲使用NoSQL數據庫可能比RDBMS有一些好處。 事情是這樣的。我對NoSQL真的不是很瞭解,之前我從來沒有用過它,所以我在這裏問我是否有某種最佳實踐,或者這是一個好主意。

如果我使用mongoDB,我會爲每個翻譯(/ english - > german/german - > chinese/..)創建一個文檔,並將每個翻譯保存爲一個列表,其中鍵是第一語言和值是翻譯,也我認爲這是可能的每個值屬性像上面提到的(對嗎?)

這是最好的方式來做到這一點?

查詢會比在mySQL中更快嗎?

+2

我有一種感覺,實際的問題與你的MySQL模型和索引策略有關。你願意發佈你的數據庫模式嗎? – swasheck

+1

對於MySQL數據庫,90-150K條目將被認爲非常馴服。它可以通過正確的索引和模式輕鬆處理數百萬條記錄。 – xbonez

+0

其實..我寧可不要:D我仍然在研究mySQL模型,有些事情我不知道如何實現它們:每個translataion可以有一個評級(好 - 壞),每個單詞可以有一個或更多標籤,如[med。] [Geo]/[Noun]/[verb] ...,不同的寫作風格(例如繁體中文/簡體中文),發音(儘管我不需要每種語言的發音) ,一個或幾個例句,以及在不同語言中具有相同含義的所有單詞都可以有圖片,我認爲在NoSQL中映射它可能更容易...... – joschua011

回答

2

最有可能的是,你最好的工具已經存在了,它被稱爲字典,字典服務器,客戶端和各種字典和工具。

還有一個rfc 2229定義dict protocol。這些工具(服務器,客戶端和轉換器)通常是打包在大多數Linux發行版中的。

請查看http://www.dict.org/瞭解更多信息。