Web 表单:编辑用户"points"字段时的数据一致性



我正在构建一个预订系统。我有一个表格,管理员可以给用户打分。用户在预订老虎机时使用这些积分问题:当管理员打开用户编辑表单时,"点"字段的初始值为N,例如1,这意味着该用户有一个点。如果在管理员提交表单之前,用户使用了该点(通过预订(,则管理员正在查看的表单仍将显示1点,这是错误的,并且通过提交表单,该点将神奇地返回给用户。解决方案是什么?在用户处于"编辑"模式时锁定用户不执行任何操作?

我使用的是MERN堆栈。

通常的系统是在加载页面时获取用户的当前点值。将该值与可编辑字段分开存储。然后,当处理表单的代码更新字段时,它首先检查字段的当前值是否与表单首次显示时相同。如果是这样,则没有进行任何幕后更改,并且可以毫无问题地应用编辑。

但是,如果当前点值与以前不同,则会发生一些幕后更改,您通常会中止编辑,因为它基于过时的信息。然后管理员必须再次应用他们想要的更改-重复该过程。

同样重要的是,要以一种不引入自身种族条件的方式进行这些检查。具体实现方式取决于数据库。

最新更新