0

让我详细描述一下这个问题。
我有一个名为导出的表。其中有一个字段 job_no。
当用户来填写此查询时

select  max(job_no) as Last_Job from jobs

结果是 A005,它是表中的最后一个作业编号。
在 PHP 端,我在用户要填写和提交的输入表单中显示 A006。
表单中的 job_no 字段是只读的,用户不能更改它。
现在问题来了,如果多个用户同时填写表单 A006 被显示给每个用户,并且当他们提交表单时,A006 与他们的记录一起提交。
这是重复的,不是必需的。
现在应该有什么解决方案来防止这种情况。我有三个解决方案,但我想知道是否有更好的解决方案。

解决方案 1
我将作业编号插入带有用户 ID 的 user_entry 表单并将其显示给用户。
然后当用户提交表单时,我会更新它。
Draback 似乎如果用户取消表单提交,那么 job_no 就没用了。

解决方案 2
我向每个用户显示作业编号,并在提交时检查作业编号,增加它并告诉用户已分配作业编号,因此他将被分配下一个。
如果我不向用户显示提示消息,他会认为他的工作编号是 A006,而在数据库中它将是 A007。

此外,如果我使用 setInterval 运行 ajax 请求,这将是服务器的负载,并且仍然有重复的机会。

这是向用户显示作业编号所必需的。那么在这种情况下有什么更好的方法。或者这个问题有什么替代方法吗?

4

1 回答 1

1

为什么在创建表单之前向用户显示 A006?如果你可以使用解决方案二,我看不出这怎么可能是一个“要求”,它说你无论如何都可以改变它。

你为什么不让他们填写表格,当他们提交时说“谢谢 - 工作 A006 已创建”。简单易行

于 2012-06-29T11:34:39.577 回答