我希望你能帮助我。 :)防止多人编辑相同的表格
我有一个一次被多个用户使用的laravel应用程序,他们都有可能在我们的系统中编辑一些项目。
我不想要的是有2人在同一时间编辑相同的形式。
如果发生这种情况,我想告诉其他用户当前窗体已被锁定并正在被用户名编辑。
如果用户然后离开或提交表单,然后表单打开供其他用户使用。
我已签出乐观和悲观锁定,我不认为这对我来说是正确的
我在想什么做的,当时,正在编辑以创建表的唯一标识符,如果页面上的用户有标识符,我会锁定所有其他的,但是如何知道用户是否关闭了浏览器窗口?那么所有其他用户仍然无法访问该页面/表单?
你们会怎么建议我去做这件事?
亲切的问候 丹妮
我会创建一个表来保存与表格有关的临时数据。当用户输入表单ID 1时,我会将用户ID,表单ID,输入日期和最后修改日期添加到新表中。我会每2分钟做一次ajax请求,只是为了告诉服务器我仍然在工作,并更新表格。如果用户在5分钟内没有发送任何内容,或者在这段时间内提交表单,我会从数据库中删除条目。通过这种方式,您可以验证是否有人在尝试访问该表单时正在处理该表单。 – Phiter
嗨@PhiterFernandes你为什么要创建一个临时数据表?我不希望任何人在一次编辑时只有一个人,所以我正在考虑为第一个用户访问页面时创建一个视觉编号,如果用户完成编辑或关闭浏览器窗口,我应该删除视觉编号。但是我怎么知道用户是否关闭了浏览器窗口?亲切的问候/ Dannie – user3502250
CodeIgniter使用ci_sessions表,临时用于存储会话数据。如果它符合你的目的,这样做完全可以。有了这个额外的表格,你可以控制多种形式。 – Phiter