我正在创建一个语言应用程序,目前只有中文和西班牙语。
目前,我已经创建了自己的字典,只是简单地加载为JSON而不存储在DB中,但是我已经找到了完整的可下载字典,比如CEDICT for Chinese来为我做定义。也就是说,这个文件有115k行长,每行有6列。
我还需要做西班牙语,然后我计划包括所有其他语言。
笔记:
MySQL数据库
拉韦尔ORM(PHP)
也就是说,存储这些数据的最佳方法是什么?
我假设是单独的表,dictionary_zh
,dictionary_es
,但我也可以将每个字典存储在字典表中,并为locale
添加一个列,并基于该列进行查询。This SO answer声明对于一个表来说,一百万条记录不是“太多”可以处理的,它只是定义了如何索引表。
顺便问一下,有人推荐一本好的可下载的西班牙语-英语词典吗?
注意:我正在下载字典,并将其剪切为可以加载到CSV中的内容
Traditional Simplified Pinyin Meaning Level Quest
佟 佟 Tong2 surname Tong 1 2
...
我只是通过传递识别字符来翻译它,在本例中是
佟
,并获取它的含义。 最佳答案
我会将每个字典存储在一个单独的表中,以根据语言环境抽象出如何获取单词的定义,而不需要知道字典(在下图中映射为Dictionary
类型)如何操作其翻译。当您可能有不在数据库中的字典(例如通过API翻译的字典)时,这非常有用。
对于每种类型的translate()
(在您的情况下Dictionary
或ChineseDictionary
)来说,方法SpanishDictionary
的实现是不同的。
从数据管理的角度来看,这种方法的另一个优点是,当字典的新版本发布时,您不必对数据进行大量操作,这使得维护成本很低。