独特的问卷——数据库设计

Unique kind of questionnaire - Database design

对于研究实验,我需要设计一个 Web 应用程序来执行特定类型的调查问卷,其结果将用于得出一些统计数据并得出一些结论。

简而言之,问卷的工作方式如下

1-> 所有的答案都是从绝对错误到绝对正确或开放式答案。

2->每组问题对应一个给定的词(例如BIRD或FISH)和一个描述(一个小句子)。

3-> 在一组中,所有问题都可以采用小句子(文本)或图像(待分类)的形式,每组可能包含一个任意数量的问题。我需要能够将与一个词对应的问题存储为文本和图像,并能够在它们之间进行选择。

4->每组问题对应5种不同的帮助。在问卷类型A中,用户可以随意选择一个。在问卷类型 B 中显示了所有类型。

5-> 用户必须回答所有问题一次(并且它们必须以随机顺序出现)。然后,如果是 A 型,他必须选择一种帮助或拒绝获得帮助并可能修改他的答案。或者,如果是B型,一个一个看各种帮助(顺序随机),有可能修改他的答案。

6-> 对于每个问题,对于每种类型的问卷,我必须知道答案是否被修改,哪种帮助导致用户修改以及(如果类型B) 这种帮助是否出现在第一、第二、第三等

我意识到这些可能不是最复杂的需求,但我对此并不陌生并且很困惑。到目前为止,我的关系如下所示

help_taken 能够采用特殊值来表示无帮助,help_choice 能够采用特殊值来表示已显示所有帮助。

困扰我的是不同类型的问题。我真的不喜欢(我也不喜欢)我区分给定问题类别的文本类型和图像类型问题的方式。知道对于给定的类别(比如 BIRD)我可能有两种类型(图像和文本),我在 QUESTION_CATEG 中包含了一个 'type' 属性。但是我觉得我在重复信息。

关于如何解决此问题,您有任何提示吗?甚至是完全不同的方法的想法。欢迎任何帮助。

这似乎有效。

  1. Q_CATEG(id,名称,顺序,描述,包含)

  2. QUESTION(id, q_categ_id, type, content, order)

  3. AVAIL_ANSWER(id,question_id,内容,顺序)

  4. HELP_CATEG(id,订单,名称,描述)

  5. 帮助(help_categ_id,q_categ_id,顺序,内容)

  6. 问卷调查(id,类型,阶段,开始,结束)

  7. GIVEN_ANSWER(questionnaire_id,question_id, answer_id, modified_answer_id, reason_answer_id, help_categ_id, help_order)