部分保存表格并在以后继续

时间:2013-06-03 13:23:26

标签: php mysql nullable

我已经做了一些挖掘并且找不到类似的问题,我发现有些像'{3}}之类的“在线表格”中的一些较大的名字可以“部分保存”但是我们无法找到有关如何实现它的任何信息。

我的方案: 表格适用于后台工作人员,工作人员正在填写表格,他们遇到了一个他们需要做一些调查才能完成的领域,而不是强迫他们现在去找它(可能在开始寻找所述信息的时候太迟了,我想提供将表格保存在当前状态的能力,并且能够在顾问有信息继续后再召回它。

我可以创建表单,我可以创建部分保存按钮,并且稍后可以使用PHP / MySQL调用它没问题,但是从SQL角度处理部分保存的最佳方法是什么?

用户将始终通过系统进行身份验证,因此保存他们的信息以便以后恢复不是问题。

我发现SurveyMonkey让我调查了this question,但我希望工作人员能够同时激活多个表单,这样他们就可以开始一个新表单而不必被迫完成目前的第一个。

关于如何解决这个问题的一些想法......

  • 我可以在表格中创建一个布尔标志,0表示部分完成,1表示完整,但这意味着我的所有字段都需要可以为空,这是一个设计缺陷吗?
  • 将部分完整的表单保存在另一个表中,然后在完全提交后将其从此临时存储中删除并将其添加到主表中。

所以我的问题是,最好的方法是什么?做任何类似事情的人都有经验吗?

1 个答案:

答案 0 :(得分:3)

在我看来,有一个标志为“已完成”(真/假)的列是最好和最简单的想法。从技术角度来看,存在可空值是没有问题的。它没有任何恶化。

如果存在逻辑问题,您可以 - 在更改此标志之前 - 禁止NULL值。这可以通过PHP(验证表单数据)或SQL(触发器)来完成。

这比拥有另一个表简单得多,因为你需要一个良好的管理系统,所以你要确保两个表中没有任何共同点。在一个表格中拥有所有内容后,您就可以SELECT所有记录完成,所有记录都没有完成,如果没有这些神奇的JOINUNION内容。