我正在开发一个简单的支持应用程序,客户提出问题并由管理员回答。我需要为问题实现资源锁定,以避免多个管理员处理同一问题并避免数据冲突。这类任务的最佳实践是什么?
PS我使用PHP和MySQL基础来存储问题。
修改
我知道我只是可以将一个状态字段放到该资源上,当打开时锁定它但是如果让管理员关闭浏览器窗口我该如何关闭它。
答案 0 :(得分:1)
嗯......如果你在Mysql db中有问题,如何添加一个包含正在处理此问题的信息的列?然后,您可以在管理员想要打开问题时进行检查...
答案 1 :(得分:0)
除了你的锁定列添加之外,你可能应该在有人请求READ它时立即锁定该条目,而不仅仅是当管理员将其归于自己时。 如果这样做,您将避免同时访问资源。
例如,如果您的UI显示的内容如下:
/!\ WARNING /!\另一个管理员已经处理过这个问题/!\ WARNING /!\
你可能想要避免两个管理员同时访问请求,一旦UI请求问题的GET STATUS / GET INFORMATION(SELECT请求),就使用锁定设置。
如果您正在寻找临时锁定,则必须处理会话并触发AND可重复使用的密钥。