2015-04-05 56 views
0

我创建了一个以VB.NET和MySQL为数据库的咖啡销售系统。如何处理并发(多用户编辑相同的数据) - VB.NET特色MySQL

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

然而,多个用户可以编辑目前在同一时间同一数据集,我需要避免。

例如:当添加一个收银员的姓名和想改变它,在同一时间,收银员要改变它,也

HRD出现了拼写错误。

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

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

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

我用我的母语(印度尼西亚语)做了一些搜索,只有几个人写这篇文章,没有给我带来什么。

回答

0

这样做的一个好方法是在行上存储updated_at timestamp值,然后在选择要编辑的记录时检索该值。

当您更新时,使其取决于updated_at匹配。如果没有行更改,则向客户端返回记录已更改的错误,并为他们提供比较更改的选项。尽量避免把所有的变化都抛弃掉,这会让你的用户疯狂。

+0

嗯,所以我认为时间戳会成为当前的答案,但我希望,我将有一些事情做,而不做数据库的事情。 – Rizaldy 2015-04-06 18:08:57

+0

通常,唯一的好办法是做一些数据库更改。 – 2015-04-07 22:21:28

+0

我实现了时间戳和用户ID,但是当用户点击同一秒钟时,我仍然遇到了一个问题,即运行一个将在数据库上创建记录的ajax。我结束了双记录。 – 2017-09-13 14:13:08

相关问题