我有一个表单,显示一个唯一的ID,表单将在该表单下提交。 唯一ID是DB + 1
中的最后一个唯一ID现在,当表单在DB中提交时,它实际上并没有直接在db中插入该唯一ID。 然后它动态检查db的最后一个唯一id,然后插入最后一个id + 1。
因此,用户可能经常看到他的表单ID(该唯一ID),表单实际上可能无法在该唯一ID下提交,因为如果其他人(user2)在此期间提交表单, 然后,User1的表单将以唯一的id + 2值提交。
我的问题是,如何在用户打开表单并提交表单之前锁定持续时间的ID。
如果您不清楚这个问题,请告诉我。 但对于大型企业应用程序来说,这是一个非常棘手和重要的事情。请告诉我。
答案 0 :(得分:0)
我看到两个选项
答案 1 :(得分:0)
锁定不是一个好主意,特别是对于大型企业应用程序。所有其他并发请求(人员)必须等到当前用户提交表单。用户将经历较长的响应时间,应用程序服务器资源将饱和,即使在极小的负载下应用程序也将崩溃。
一种更好的方法是仅在表单提交后通知用户id。事先可能对他们没有用处。
无论如何,锁的确切实现取决于你的数据库,但是类似于: 开始交易 从foo中选择max(id) [以某种方式增加id] [等待用户提交] 插入foo值(new_id) 提交
但同样,你应该避免采用这种方法