多个问题和答案的数据库选择

时间:2020-11-07 01:28:13

标签: mysql database entity entity-relationship

我将要开发一个数据库,用于存储带有不确定数量问题的问卷。该数据库将与服务器通信,用于注册答案并在需要时检索它们。对于每个用户,我需要存储每个问题的答案,这是服务器端必不可少的。

结构应为:

QUESTIONNAIRE:
Questionnaire n.1 (Question1,Question2,...,QuestionN)
Questionnaire n.2 (Question1,...,QuestionM)
...

USER:
User1
User2
...

ANSWERS
User1 - Questionnaire n.1 (AnswToQuestion1, AnswToQuestion2...AnswToQuestionN)
User2 - Questionnaire n.1 (AnswToQuestion1, AnswToQuestion2...AnswToQuestionN)
User2 - Questionnaire n.2 (AnswToQuestion1, AnswToQuestion2...AnswToQuestionM)

鉴于上述规格,我面临两个主要问题:

  1. 无限数量的问题意味着表必须存储每个调查问卷的每个问题
  2. 问答之间应该有对应关系

我曾考虑过2种不同的解决方案来解决此类问题,但我真的可以在2种方案之间做出决定。

第一个将包括创建5个差异表,如下所示: ER

该想法基本上是将用户存储在USER表中,并且为每个用户存储一个ANSWER,这是指特定的调查表。这给出了类似“用户x已回复调查表”的信息。然后,唯一ID id:ANSWER将用于标记MARKETINGANSWER中的给定答案。 QUESTIONNAIRE表将保存调查表的每个实例,并提供唯一的ID来链接MARKETINGQUESTION表中的每个不同问题。最后,唯一ID id:MARKETINGQUESTION将用于将问题映射到给定答案。

什么不能说服我:这具有太多的间接层。我不喜欢MARKETINGANSWERMARKETINGQUESTION的强制连接,但是我需要一种映射它们的方法。此外,我需要ANSWER的常规表,因为它提供了有关问卷的一些常规信息(隐藏的列)。

然后,我想到了第二种方法:创建一个唯一的ANSWERQUESTIONNAIRE表,该表将包含在TEXT属性中,由一系列特殊的转义字符分隔的答案/问题(例如#&)。这将破坏映射,但是可以在Web应用程序中实现-我正在考虑对问题/答案的数量进行控制,可以确保在问卷调查表中确定排序并提交到数据库。此外,该架构将更加简洁。但是,我会在数据库架构中失去一致的表示形式。

如果可以的话,我想提出一些建议。我很确定有些简单的事情我无法完全掌握。 预先谢谢你。

0 个答案:

没有答案
相关问题