【发布时间】:2013-10-24 19:09:21
【问题描述】:
我为 Android 制作了一个词汇应用程序,它在本地数据库 (SQLite) 中存储了大约 5000 个单词的列表,我想找出哪些单词比其他单词更难。
为了找出答案,我正在考虑添加一个非常简单的功能,将两个随机单词放在屏幕上,让用户选择更难的单词。然后将显示另一对随机单词,并且可以根据用户的需要重复此过程。参与这个“难词”的用户越多,理论上应用程序就能区分难词和易词。
由于难度取决于所有用户的输入,我知道我需要在线跟踪它,以便每个应用程序都可以从我网站上的数据库(即 MySQL)中获取它们。我不确定跟踪难度的最有效方法是什么,但我想出了两种可能的解决方案:
1) 将包含整数值的difficulty 列添加到单词表中。那么对于用户每看一个词并进行排名,他/她选择的较难的词的难度会增加一个,而没有选择的词的难度会降低一个。我可以简单地order by 那个整数值来获得最困难的值。
2) 创建一个difficulty 表,其中包含两列more 和less,它们根据用户所做的每个选择的结果保存单词(或单词的ID's 以节省空间)。我仍然不确定如何获得最困难的单词 - group by 和 order by 的组合?
我的第二个解决方案的好处是,我可以知道每个单词被看到了多少次(more 列中包含该单词的行数 + less 列中包含该单词的行数) .这有助于统计数据,比如如果我想找出哪个单词的more / less 比率最高。但它也会比我第一个建议的解决方案占用更多的空间,而且不知道如何扩展。
您认为哪种解决方案更好,或者我应该考虑哪些其他解决方案?
【问题讨论】:
-
这个问题似乎是题外话,因为它是关于应用程序设计,而不是数据库设计
-
@JoelBrown 你是说
database-design是一个错误的标签选择,还是这个问题更适合 StackOverflow 而不是这个网站?我主要对我应该使用什么结构来存储这些信息感兴趣——它可能用于应用程序,但我只是想提供上下文。 -
是“它的”,而不是“它的”
-
@Strawberry 谢谢,我刚刚改正了这个错误,尽管它不是什么大问题,因为它与实际问题相比意义不大
-
嗯?但问题是关于单词难度 ;-)
标签: mysql database-design