我正在开发一个相对简单的自定义Web应用程序,并在后端安装了MySQL MyISAM数据库。不知何故,我想避免经典的并发覆盖问题,例如该用户A覆盖用户B的编辑,因为B在A完成之前加载并提交了一些编辑表单。我应该使用MySQL的自定义'锁'表吗?
这就是为什么我想以某种方式锁定显示编辑表单的行。然而...
- 正如我所说,我使用的MyISAM,据我所知,它不支持行级锁。另外,我不确定是否持有“真正的”MySQL锁定几分钟是建议的做法。
- 我对交易并不十分了解,但从我所看到的看来,它们看起来像是在一个连接中使用。
- 使用像Git这样的冲突合并系统真的不是一个选项。
行将保持锁定几分钟。并发性非常低:有六位用户随时使用该应用程序。
我现在正在计划使用一张表,详细介绍哪些用户正在做什么以及从何时开始。当其他用户最近打开它时(例如正在处理它),应用程序可以决定不显示编辑表单。在保存表格时,这个假锁将被删除。
会这样吗?我应该怎么做才能避免死锁,活锁和所有这些东西?
感谢您的明确答案!我想我会用相当短的到期时间,并用AJAX以某种方式刷新它们。 – 2011-06-13 07:17:59