【发布时间】:2011-07-12 08:57:17
【问题描述】:
在法语中,我们将并发控制问题称为一杯咖啡原理。英文应该是一样的吧?
这是原则。让我们想象一个医院管理系统。医生使用应用程序显示患者并对其进行修改。在点击“更新”之前,他离开去喝杯咖啡。另一位医生在他的客户端应用程序上显示同一位患者并单击“更新”。当第一位医生回来时,他点击了“更新”。问题是:必须接受哪个更新?事实上,这是一个反问:由开发人员/架构师来回答。
我正在考虑的一个解决方案是在我的表格中添加一列“locked”。当我让 Patient 进行更新时,我将布尔值设置为 true,并在我刚刚更新它时将其设置为 false。任何“Get for update”都会检查“locked”是否设置为 false 以允许写入。
您发现使用此解决方案有什么问题吗?
【问题讨论】:
标签: database concurrency