admin管理员组

文章数量:814804

Web表单:编辑用户“点”字段时的数据一致性

我正在建立预订系统。我有一个表单,管理员可以在该表单中为用户提供积分。用户在预订时段时使用这些点。 问题:当管理员打开用户编辑表单时,“点”字段的初始值为N,例如1,表示该用户只有一个点。如果在管理员提交表单之前,用户使用该点(通过预订),则管理员正在查看的表单仍显示1点,这是错误的,并且通过提交表单,该点将神奇地返还给用户。有什么解决办法?锁定用户在“编辑”模式下无法执行任何操作?

我正在使用MERN堆栈。

回答如下:

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

但是,如果当前点值不同于当前点值,则说明发生了一些幕后更改,您通常会中止编辑,因为它基于过期信息。然后,管理员必须再次应用其所需的更改-重复该过程。

同样重要的是,以不引入自身竞争条件的方式进行这些检查。具体如何实现特定于数据库。

本文标签: Web表单编辑用户“点”字段时的数据一致性