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

nat*_*per 5 php mysql nullable

我已经做了一些挖掘,找不到类似的问题,我发现一些参考"在线表格"中的一些较大的名字,如SurveyMonkey等能够"部分保存"但却找不到关于如何实现它的任何信息.

我的场景: 表格是针对后台工作人员的,工作人员表示他正在填写一份表格,他们遇到了一个他们需要做一些调查才能完成的领域,而不是强迫他们现在去找它(当天开始寻找上述信息可能为时已晚),我希望能够将表格保存在当前状态,并且能够在顾问继续提供信息后再召回.

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

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

我发现这个问题让我看了GarlicJS,但是我希望工作人员能够同时激活多个表单,这样他们就可以开始一个新的表单而不必被迫先完成当前的表单.

关于如何解决它的一些想法......

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

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

Voi*_*cus 4

在我看来,拥有一个带有“已完成”标志(真/假)的列是最好和最简单的想法。从技术角度来看,具有可为空值没有问题。无论如何,情况并不更糟。

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

这比拥有另一个表要简单得多,因为您需要良好的管理系统,这样您就可以确保两个表中没有任何共同点。如果没有这种魔法和东西,将所有内容都放在一张表中可以让您SELECT记录所有已完成的、所有未完成的记录。JOINUNION

  • 我同意(+1),但我对仅在 PHP 中验证数据约束持谨慎态度。许多应用程序有不止一种获取信息的方式(或将来会),因此您最终可能会在各种前端中出现重复的约束逻辑。只要有可能,我认为最好将这样的逻辑放在服务器上。 (3认同)