细节
我有一个测验(我们称之为 quiz1)。Quiz1 每次生成时都使用相同的词表。如果用户需要,他们可以跳过单词来完成测验。我想将那些跳过的单词存储在 mysql 中,然后对它们进行统计。
起初我打算将错过的单词作为字符串存储在一列中。每个单词都用逗号分隔。
|testid | missedwords | score | userid |
*************************************************************************
| quiz1 | wordlist,missed,skipped,words | 59 | 1 |
| quiz2 | different,quiz,list | 65 | 1 |
这种方法的问题是,我想在每次测验结束时显示参加测验的用户最常错过哪些单词的统计数据。
我假设将遗漏的单词存储在上面的一列中为此目的是低效的,因为我需要提取信息然后对其进行计数-(可能使用 php 进行计数-除非我将已计数的数据存储在单独的表中)。
然后我想也许我需要为遗漏的单词创建一个单独的表格下表的优点是应该很容易从下表中计算单词。
|Instance| missed word |
*****************************
| 1 | wordlist |
| 1 | missed |
| 1 | skipped |
另一种方法是我可以创建一个带有计数的表,并在每次进行 quiz1 时更新它。
Testid | wordlist| missed| skipped| otherword|
**************************************************
Quiz1 | 1 | 1| 1| 0 |
这种方法的问题是我需要为每个测验使用不同的表格,因为每个测验将使用不同的单词。信息也丢失了,因为只保留了计数,而不是用户错过了哪些单词的相关数据。
问题
你会使用哪种方法?为什么?欢迎使用替代方法来完成此任务。如果您发现我的逻辑中有任何缺陷,请随时指出。
编辑 用户将能够根据需要多次重新参加测验。他们的信息不会更新,而是会为他们重新进行的每个测验创建一个新实例。