Database-Recommendation
翻譯應用程序使用的數據庫的最佳選擇
我即將開始開發一個應用程序,該應用程序將包含各種語言的單詞及其翻譯。
數據庫的最佳選擇是什麼?
查詢將立即進行。因此,如果有人選擇“俄語”作為第二語言並開始輸入“請遞鹽”,則必須用俄語查找這些單詞中的每一個。也許僅僅列出每個單詞不會是片語的確切翻譯,這將導致另一個查詢,該查詢可能會根據句子中的單詞查找片語。
所以我可以使用 MySql 或任何其他非 sql 數據庫 Firebase、Mongo、CouchDb … 等。但我不知道不使用關係數據庫是否是我的最佳選擇。
我可以做這樣的事情嗎,看起來不錯,但是考慮到所有語言時,數據庫會變得很大:
{ "english": { "word1": { "russian": "word1inrussian", "spanish": "word1inspanish", "korean": "word1inkorean" }, "a phrase": { "russian": "phrase in russian", "spanish": "phrase in spanish", "korean": "phrase in korean" } } }
您需要一個關係數據庫來查找一個單詞以獲取一個單詞或片語。那不是“翻譯”。
該 RDBMS 中的主表類似於
CREATE TABLE Transliterate ( in_phrase VARCHAR (255) NOT NULL, language CHAR(5) CHARACTER SET ascii NOT NULL, -- 'en-us', 'ru-ru', ... out_phrase VARCHAR (255) NOT NULL, PRIMARY KEY(language, in_phrase) ) ENGINE=InnoDB DEFAULT CHARACTER SET utf8mb4;
這假設
in_phrase
始終是英語。如果沒有,則需要有用於傳入語言的列,並且它將是PRIMARY KEY
.對於真正的“翻譯”,您需要大量嚴謹的算法,並由這個簡單的查找工具支持。