Far*_*ren 10 database database-design
目前我想为移动设备开发字典应用程序.字典本身使用脱机文件/数据库来翻译单词.它只翻译两种语言,例如英语 - 西班牙语词典.我脑子里有一个简单的设计.它将是两个表:英语表和西班牙语表.对于每个表包含:
而且由于这是针对移动应用程序,数据库使用SQLite.
每个表的定义数据已按表上的字段'word'顺序提供.但是,如果有数据定义的附加内容,我仍然在考虑这个问题.因为表格将按字段'word'排序,是否有任何方法可以按字顺序放置(插入)新记录?或任何提高效率的想法?
vvu*_*rsT 16
至少每个翻译都有一些翻译可能性取决于上下文.如果你想为两种语言做一个双向字典,你至少需要三个表:
ENGLISH
ID | WORD
1 | 'dictionary'
GERMAN
ID | WORD
1 | 'lexikon'
2 | 'wörterbuch'
TRANSLATION_EN_DE
ID_EN | ID_DE
1 | 1
1 | 2
Run Code Online (Sandbox Code Playgroud)
前两个表包含该语言中已知的所有单词,双向映射由第3个映射表完成.这是一个常见的n:n映射案例.再加上两个表,你总能为你添加一种新语言.如果你用一个表做,你将有一个单词的多个定义,因此没有规范化的数据库.
您还可以将语言表合并到一个表中,该表通过另一列定义单词language(引用语言表).在这种情况下,你需要一个2列索引的语言和单词本身.