Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/292.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
Php 存储和显示问卷数据,更容易解决问题?_Php_Asp.net_Mysql_Xml_Asp.net Mvc - Fatal编程技术网

Php 存储和显示问卷数据,更容易解决问题?

Php 存储和显示问卷数据,更容易解决问题?,php,asp.net,mysql,xml,asp.net-mvc,Php,Asp.net,Mysql,Xml,Asp.net Mvc,基本上,这是一份调查问卷,但它不仅问是/否类型的问题。有些问题是以表格的形式提出的。以下是问卷的一个步骤页面示例: 调查问卷允许客户保存他们输入的内容、注销、稍后返回并继续填写其余内容,然后提交。管理员还将审查问卷,并允许供应商仅访问部分问题,以防需要更正 下面的文本描述了我存储数据的解决方案,但我想知道是否有一种更简单的方法。这也是位于图像右侧的问答表的列表 问题的列名也应存储为单独的问题,但现在问题4.a除外 4.a.1, "Standard" 4.a.2, "Certifying Or

基本上,这是一份调查问卷,但它不仅问是/否类型的问题。有些问题是以表格的形式提出的。以下是问卷的一个步骤页面示例:

调查问卷允许客户保存他们输入的内容、注销、稍后返回并继续填写其余内容,然后提交。管理员还将审查问卷,并允许供应商仅访问部分问题,以防需要更正

下面的文本描述了我存储数据的解决方案,但我想知道是否有一种更简单的方法。这也是位于图像右侧的问答表的列表

问题的列名也应存储为单独的问题,但现在问题4.a除外

4.a.1, "Standard"  
4.a.2, "Certifying Organization"  
4.a.3, "Date of Last Certification"
所以要显示这一点非常简单。如果我们将问题的类型设置为新类型,例如TABLECOL,我们将知道如何创建表和表列。此外,由于数据将按升序提取,因此为此创建html应该不是问题。不管怎样,现在我认为我们可以将所有单元格作为文本输入类型。也许将来,如果到时候,表中的一列可能不是文本输入字段,例如,它可能是下拉列表,因此我们需要一种方法来描述要使用的内容

现在,当用html显示表格时,问题4.a默认有三行。其他问题有不同的数字。我还考虑了表列的验证。因此,对于所有这些,我正在考虑创建一个名为QuestionAttributes的新表。这将作为存储问题id的许多属性的一种方式。因此,问题4.a是一个表,应该显示3行。在属性表中会有一个条目,例如: idof 4.a,MINROWS,3

为了将数据存储在answers表中,我们必须在answers表中添加一个新字段,该字段将提供答案的唯一性和排序功能。因此,与其使用自动增量值,不如说存储UTC时间戳,该时间戳还可以描述给出答案的时间(如果需要)。这将允许排序,以帮助我们在网页的表格中以正确的顺序显示数据。基本上,在答案表中,每个答案都应该有一个不同的整数值

检索答案的查询应在问题表sort_order和答案表utc_timestamp上进行排序。此查询的结果如下所示:

4.a.1, "Answer1", 9878921  
4.a.2, "Answer2", 9878923  
4.a.3, "Answer3", 9878925  
4.a.1, "Answer1", 9878926  
4.a.2, "Answer2", 9878928  
4.a.3, "Answer3", 9878929

任何帮助都将不胜感激。

您可能会不同意,但我认为该设计过于工程化,尤其是对于第一个版本。我会选择尽可能简单的设计:

QuestionaireId
Status           f.e. "Pre-Approval"
StatusDate
Answerer         f.e., "Mike Mayhem"
Question1        f.e., "Yes"
Question2        f.e., "Option6"
Question3        f.e., "Blah Blah Blah"
...
然后,您可以有一个日志表,其中显示某人何时批准项目、回答问题等:

LogId
QuestionaireId
LogDate
LogEntry         f.e., "Questionaire approved by Bill"

对于超过第一个版本的新迭代,只有在增加了巨大的业务价值时才添加一对多或多对多关系。关系在复杂性方面是昂贵的,将复杂性保持在最低限度是一个好的设计的本质。

可以在这里找到问卷的链接,感谢您的回复。不幸的是,我必须使用另一种类型的设计,因为它将提供一些方法来解锁某些问题,以允许用户进行更正。还有一些问题是父问题的子问题。我猜你的建议是每一步都使用静态页面。@Ron Buenavida:儿童问题和解锁是静态页面的简单方法。只是想提醒你:如果你只需要写一份问卷,不要尝试写所有问卷申请的母亲:你是对的。我刚刚静态地完成了问卷的UI构建。这样快多了。谢谢你,安多玛。