我有來自exp的單詞和短語的數據庫。英語對其他15種語言,並在該列表中的其他15每一種語言對於一個對他們那種,現在在一個表像這樣(EN - >德):如何爲翻譯字典設計數據庫?
- id_pair
- word_en
- word_de
什麼是對那巨大的單詞和短語的列表中創建數據庫的最佳方式? 我知道我必須在每個主要語言從別人分開,並想也許是這樣的:
ENGLISH
ID | WORD
1 | 'dictionary'
GERMAN
ID | WORD
1 | 'lexikon'
2 | 'wörterbuch'
TRANSLATION_EN_DE
ID_EN | ID_DE
1 | 1
1 | 2
這是規範化數據庫的最佳方式?但是,對於短語而言,如果有人輸入「dictionay」這個詞,那麼這個詞也會返回「This dictionary is good」和翻譯。 (我知道這可以在第一個表中找到與SQL查詢,是最好的辦法嗎?)
也需要它按字母順序所有的時間,我會有很多新的每日進入,所以我可以打印一些單詞之前和之後的單詞/分階段尋找翻譯的人。
我卡住了,不能決定什麼是最佳的方法來優化它。這些數據庫擁有15GB以上的基於文本的翻譯,每日需求量約爲10萬,因此每個MS值得。 :) 任何幫助將不勝感激,thx!
感謝您的幫助Branko,我認爲每種語言都有單獨的表格,我將爲搜索翻譯節省時間和服務器性能。當所有的單詞都在一個表中時,現在是否會有問題,並且對於在一個語言中搜索特定單詞將會很大?我必須要問,因爲我每天都有很多需求,而且越來越多。 –
@IvanZg假設所有表都在同一個物理磁盤上,那麼在「多表」場景中不搜索正確的表也會產生成本,最終結果(性能方面)應該非常相似。如果您打算將表放在不同的磁盤上,可以通過分區(假設您的DBMS支持它)而不是分割爲單獨的表來實現類似的效果。 –
如果我想給句子如何使用單詞,那麼用exp的階段內的單詞怎麼樣?我仍然使用%WORD%來選擇它嗎? –