2015-10-19 47 views
0

我正在设计一个基于小组进度测验的数据库。测验包含55个问题,理想情况下,一组10人将每隔几周参加一次测验,每个人都会为小组中的每个人(包括他们自己)服用一次。因此,每次小组参加测验时,都会将100条数据添加到数据库中。具有小数据的大型MySQL数据库

目前我储存测验答案表将具有以下行:

quiz_taker_id  // person taking the quiz 
quiz_subject_id // taker is answering questions about this person 
quiz_id   // identifies if this is the 1st time taking the quiz, 2nd time, etc 
question1   // answer to question 1 
question2   // answer to question 2 
...    // etc, for all quiz questions 

测验答案是非常简单,它只是一个人的特性的0-5口粮。这是存储这些数据的好方法吗?有没有更好的方法来做到这一点?我刚刚开始建立网站和数据库,所以我想确保我以正确的方式接近此方法

+1

你打算怎么处理这些数据?你会针对它做什么样的查询? –

+0

@ PM77-1提出了正确的问题 - 在大多数情况下,如果可能的话,根据您希望如何报告/查询数据来设计数据库模式会更好。许多人会说,“更好”的设计将是进一步规范你的数据,但根据你打算如何使用它以及你期望的应用程序的生命,它可能会也可能不值得。如果这是(例如)您计划运行几个月的特定研究,那么您拥有的可能是完全合适的。 –

+0

测验随自助书一起提供。最后,每个小组成员在55个不同的人格类别中互相排列,然后几个星期后他们再次相互排列。这将继续无限期地进行,但我可能会在第10次测验之后开始删除旧数据。 –

回答

0

无论何时您想以任何方式处理数据(如制作postgame统计数据),建议您使用数据库。你的db设计非常简单,缺乏一些灵活性,比如说,你想在后面添加更多的问题(现在你必须添加额外的列)。

因此,这取决于您打算如何处理收集的数据,以及是否打算扩展测验规则。

0

这太长了评论。

问题应该在一张表中,questions不是每个问题一张表。一个基本的问题表将有每个问题和它的正确答案。这对你的问题可能已经足够了。

对于调查(和我想象中的测验),存在版本控制问题,因为问题可能会随着时间慢慢变化。作为一个有点微不足道的例子,你可能会先问“你的性别是什么?”最初提供了两个答案“男”,“女”。随着时间的推移,您可能会开始添加其他答案:“其他”,“变性人”,“雌雄同体”等。在分析答案时,您可能需要知道在特定时间提问的问题版本。

这是一个调查的例子,没有正确的答案,但类似的想法适用于测验:问题和答案可能会随着时间的推移而有所变化,但你仍然希望它们在问题2中得到认可,但是你想要知道被问到的版本。