独特的问卷——数据库设计
Unique kind of questionnaire - Database design
对于研究实验,我需要设计一个 Web 应用程序来执行特定类型的调查问卷,其结果将用于得出一些统计数据并得出一些结论。
简而言之,问卷的工作方式如下
1-> 所有的答案都是从绝对错误到绝对正确或开放式答案。
2->每组问题对应一个给定的词(例如BIRD或FISH)和一个描述(一个小句子)。
3-> 在一组中,所有问题都可以采用小句子(文本)或图像(待分类)的形式,每组可能包含一个任意数量的问题。我需要能够将与一个词对应的问题存储为文本和图像,并能够在它们之间进行选择。
4->每组问题对应5种不同的帮助。在问卷类型A中,用户可以随意选择一个。在问卷类型 B 中显示了所有类型。
5-> 用户必须回答所有问题一次(并且它们必须以随机顺序出现)。然后,如果是 A 型,他必须选择一种帮助或拒绝获得帮助并可能修改他的答案。或者,如果是B型,一个一个看各种帮助(顺序随机),有可能修改他的答案。
6-> 对于每个问题,对于每种类型的问卷,我必须知道答案是否被修改,哪种帮助导致用户修改以及(如果类型B) 这种帮助是否出现在第一、第二、第三等
我意识到这些可能不是最复杂的需求,但我对此并不陌生并且很困惑。到目前为止,我的关系如下所示
- 问卷(id,help_choice,类型,阶段)
- QUESTION_CATEG(id,类型,名称,描述)
- IMAGE(#qcat_id, 文件路径)
- TEXT(#qcat_id,内容)
- 包括(#questionnaire_id,#qcat_id)
- 帮助(#id, #qcat_id, 内容)
- ANSWER(#questionnaire_id, #qcat_id, 响应, was_modified, help_taken, help_order).
help_taken 能够采用特殊值来表示无帮助,help_choice 能够采用特殊值来表示已显示所有帮助。
困扰我的是不同类型的问题。我真的不喜欢(我也不喜欢)我区分给定问题类别的文本类型和图像类型问题的方式。知道对于给定的类别(比如 BIRD)我可能有两种类型(图像和文本),我在 QUESTION_CATEG 中包含了一个 'type' 属性。但是我觉得我在重复信息。
关于如何解决此问题,您有任何提示吗?甚至是完全不同的方法的想法。欢迎任何帮助。
这似乎有效。
Q_CATEG(id,名称,顺序,描述,包含)
QUESTION(id, q_categ_id, type, content, order)
AVAIL_ANSWER(id,question_id,内容,顺序)
HELP_CATEG(id,订单,名称,描述)
帮助(help_categ_id,q_categ_id,顺序,内容)
问卷调查(id,类型,阶段,开始,结束)
GIVEN_ANSWER(questionnaire_id,question_id, answer_id, modified_answer_id, reason_answer_id, help_categ_id, help_order)
对于研究实验,我需要设计一个 Web 应用程序来执行特定类型的调查问卷,其结果将用于得出一些统计数据并得出一些结论。
简而言之,问卷的工作方式如下
1-> 所有的答案都是从绝对错误到绝对正确或开放式答案。
2->每组问题对应一个给定的词(例如BIRD或FISH)和一个描述(一个小句子)。
3-> 在一组中,所有问题都可以采用小句子(文本)或图像(待分类)的形式,每组可能包含一个任意数量的问题。我需要能够将与一个词对应的问题存储为文本和图像,并能够在它们之间进行选择。
4->每组问题对应5种不同的帮助。在问卷类型A中,用户可以随意选择一个。在问卷类型 B 中显示了所有类型。
5-> 用户必须回答所有问题一次(并且它们必须以随机顺序出现)。然后,如果是 A 型,他必须选择一种帮助或拒绝获得帮助并可能修改他的答案。或者,如果是B型,一个一个看各种帮助(顺序随机),有可能修改他的答案。
6-> 对于每个问题,对于每种类型的问卷,我必须知道答案是否被修改,哪种帮助导致用户修改以及(如果类型B) 这种帮助是否出现在第一、第二、第三等
我意识到这些可能不是最复杂的需求,但我对此并不陌生并且很困惑。到目前为止,我的关系如下所示
- 问卷(id,help_choice,类型,阶段)
- QUESTION_CATEG(id,类型,名称,描述)
- IMAGE(#qcat_id, 文件路径)
- TEXT(#qcat_id,内容)
- 包括(#questionnaire_id,#qcat_id)
- 帮助(#id, #qcat_id, 内容)
- ANSWER(#questionnaire_id, #qcat_id, 响应, was_modified, help_taken, help_order).
help_taken 能够采用特殊值来表示无帮助,help_choice 能够采用特殊值来表示已显示所有帮助。
困扰我的是不同类型的问题。我真的不喜欢(我也不喜欢)我区分给定问题类别的文本类型和图像类型问题的方式。知道对于给定的类别(比如 BIRD)我可能有两种类型(图像和文本),我在 QUESTION_CATEG 中包含了一个 'type' 属性。但是我觉得我在重复信息。
关于如何解决此问题,您有任何提示吗?甚至是完全不同的方法的想法。欢迎任何帮助。
这似乎有效。
Q_CATEG(id,名称,顺序,描述,包含)
QUESTION(id, q_categ_id, type, content, order)
AVAIL_ANSWER(id,question_id,内容,顺序)
HELP_CATEG(id,订单,名称,描述)
帮助(help_categ_id,q_categ_id,顺序,内容)
问卷调查(id,类型,阶段,开始,结束)
GIVEN_ANSWER(questionnaire_id,question_id, answer_id, modified_answer_id, reason_answer_id, help_categ_id, help_order)