如何处理并发(多个用户编辑相同的数据) - 以MySQL为特色的VB.NET

时间:2015-04-05 20:04:56

标签: mysql vb.net concurrency

我创建了一个以VB.NET和MySQL作为数据库的咖啡销售系统。

在该系统中,用户可以更新自己的信息,例如名字,姓氏,BOD等。

但是,多个用户当前可能同时编辑同一数据集,我需要阻止这些数据集。

示例:

HRD在添加收银员的名字时打了一个错字,并希望改变它,同时收银员也希望改变它。

我想在这里做的是在他以编辑模式打开他的数据时通知收银员,其他人已经在编辑他的数据,例如通过显示"您的数据正在编辑"。

我读到我可以通过锁定表格,行等来做到这一点,然而,很多人说这是解决这个问题的一种不好的方法。

我正在寻找替代的,基于代码的解决方案的建议。

我用我的母语(印度尼西亚语)进行搜索,只有少数人写这篇文章并且什么都没带。

1 个答案:

答案 0 :(得分:0)

执行此操作的一个好方法是在行上存储updated_at时间戳值,然后在选择要编辑的记录时检索该值。

更新时,请以updated_at匹配为条件。如果没有更改行,则向客户端返回错误,表明记录已更改,并为其提供比较更改的选项。尽量避免丢弃所有的更改,这会让用户发疯。