Database-Recommendation

翻譯應用程序使用的數據庫的最佳選擇

  • March 10, 2017

我即將開始開發一個應用程序,該應用程序將包含各種語言的單詞及其翻譯。

數據庫的最佳選擇是什麼?

查詢將立即進行。因此,如果有人選擇“俄語”作為第二語言並開始輸入“請遞鹽”,則必須用俄語查找這些單詞中的每一個。也許僅僅列出每個單詞不會是片語的確切翻譯,這將導致另一個查詢,該查詢可能會根據句子中的單詞查找片語。

所以我可以使用 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.

對於真正的“翻譯”,您需要大量嚴謹的算法,並由這個簡單的查找工具支持。

引用自:https://dba.stackexchange.com/questions/166256