Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/55.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 多个问题和答案的数据库选择_Mysql_Database_Entity_Entity Relationship - Fatal编程技术网

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

Mysql 多个问题和答案的数据库选择,mysql,database,entity,entity-relationship,Mysql,Database,Entity,Entity Relationship,我将开发一个数据库,用于存储问题数量不定的调查问卷。该数据库将与服务器通信,用于注册答案并在需要时检索答案。对于每个用户,我需要存储每个问题的答案,这是服务器端必需的 结构应该是这样的: QUESTIONNAIRE: Questionnaire n.1 (Question1,Question2,...,QuestionN) Questionnaire n.2 (Question1,...,QuestionM) ... USER: User1 User2 ... ANSWERS User1 -

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

结构应该是这样的:

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)
鉴于上述规范,我面临两个主要问题:

  • 问题数量不确定意味着表格必须存储每个问卷的每个问题
  • 问题和答案之间应该有一个对应关系
  • 我考虑了两种不同的解决方案来面对这些问题,但我真的可以在这两种方案之间做出选择

    第一个是创建5个不同的表,如下所示:

    其基本思想是将用户存储在
    USER
    表中,并为每个用户存储一个
    答案
    ,该答案引用一个特定的问卷。这会提供类似“用户x已回复问卷”的信息。然后,将使用唯一id
    id:ANSWER
    MARKETINGANSWER
    中标记给定答案。
    问卷
    表将保存问卷的每个实例,并提供一个唯一的id来链接
    MARKETINGQUESTION
    表中的每个不同问题。最后,将使用唯一id
    id:MARKETINGQUESTION
    将问题映射到给定答案

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

    然后我考虑了第二种方法:创建一个独特的
    答案
    问卷
    表,该表将包含在
    文本属性中,由一个特殊转义字符分隔的一系列答案/问题(例如
    #&
    )。这将破坏映射,但它可以在web应用程序中实现-我正在考虑对问题/答案的数量进行控制,在问卷注册和数据库提交时确保排序。此外,模式会更干净。然而,我会丢失数据库模式中的一致表示

    如果可能的话,我想就拟议的解决办法提出一些建议。我很确定有一件简单的事情我不能完全理解。 先谢谢你