我们正在创建一个 VB.NET 程序,该程序将在多台计算机上使用,并具有一个位于 XAMPP/MySQL 上的中央数据库。这是我的问题:
我应该用什么来让user2必须先等待才能完成user1的交易?我相信,如果 user1 和 user2 同时编辑同一行,然后输入不同的数据,就会出现错误/问题,我猜,要么是错误,要么是第一个编辑的数据不会被保存。不过,如果我错了,请随时清除它。
根据我的研究,交易可以用于此目的,但我还不太确定,我想对此有更多解释。我如何将其用于 XAMPP/MySQL 数据库和 VB.NET?有人还告诉我使用“会话”来实现这一点。您认为这之间哪个更好,如果您能用更简单的术语解释一下。
但是,如果有更好的方法来实现这一目标,请告诉我。预先感谢您的帮助!
一个选项(有许多不同的选项)是有一个自动更新的 TIMESTAMP 字段。每当插入或更新记录时都应该更新。
(参见https://www.mysqltutorial.org/mysql-basics/understanding-mysql-timestamp/)
当用户加载记录时,您会加载此时间戳值。然后,当用户单击“保存”时,您的代码会在 UPDATE 语句的 WHERE 子句中检查此时间戳值。这样,如果记录在加载后发生了更改,则 UPDATE 语句将不会影响任何行。然后,您告诉用户他们的更新失败,因为其他人编辑了记录。