答案 0 :(得分:0)
嗯,一般来说,在用户处理记录时物理锁定记录是一个糟糕的设计。数据库锁应该很短。在启动事务和提交事务之间应该只执行代码,但绝对没有用户交互。
您可以谷歌“乐观锁定与悲观锁定”来了解有关该主题的更多信息。
如果必须使用悲观锁定,则必须实现某种智能软件锁而不是数据库锁。例如,您可以为Current_Edit_By和Current_Edit_Time添加两个字段。当用户开始编辑记录时,您可以使用用户ID和当前日期时间填写这些字段。当另一个用户尝试编辑同一条记录时,检查这两个字段,如果有值,则显示错误。
当然,如果用户在未提交记录的情况下断开与数据库的连接,则需要实现一种自动清除锁定记录的机制。因此,日期时间字段(例如,清除超过30分钟的锁定,只要连接不再存在)。