我试图为句子添加一个字典(大多数是单个单词),但如果我应该按照单词组织它们,我还是未定,例如:
{word:"bacon", en:"bacon", ro:"sunca", fr:"jambon"}
或按语言:
{
en:{ bacon:bacon },
ro:{ bacon:sunca },
fr:{ bacon:jambon }
}
我意识到两者都有利有弊,同样有效,但我正在寻求那些遇到过这个问题的人的智慧,做出选择,并且很高兴或后悔做到了,当然,为什么。< / p>
谢谢。
答案 0 :(得分:2)
以下表示简单而优雅。但mongodb(或大多数nosql数据库)中的文档表示受到数据使用模式的严重影响。
{word:"bacon", en:"bacon", ro:"sunca", fr:"jambon"}
此表示具有以下优点,假设您想要通过传递word
word
答案 1 :(得分:0)
在您提供的两个选项中,第一个选项更好。但是,由于最多会有这么多语言,在你的情况下,我实际上会选择数组:
LANG = {en: 0, ro: 1, fr: 2}
DICT = [
[:ham, :sunca, :jambon],
[:egg, :ou, :œuf]
]
如需翻译,请写下:
def translate( word, from: nil, to: nil )
from = LANG[from]
to = LANG[to]
i = DICT.index { |entry| entry[from] == word }
return DICT[i][to]
end
translate( :egg, from: :en, to: :fr )
#=> :œuf
请注意,尽管已经尽力减少字典的大小,但就速度而言,可以使用例如更快的匹配算法。后缀树。