Zec*_*tes 5 user-interface design-patterns locking
我正在创建一个具有一些管理屏幕的Web应用程序,用户可以在其中编辑记录(例如,更改用户的联系人详细信息).对这些管理屏幕的访问由角色控制,多个用户可能具有访问权限.现在出现的问题是如果两个用户同时尝试编辑同一记录该怎么办.
我的问题在于前端,而不是后端.我可以使用哪些模式来设计我的页面,以便用户友好并防止并发修改?我能想到的唯一两个选择是这些:
有什么建议?
定时预约怎么样?这是许多在线预订系统中使用的模型。
基于简单单表情况的示例(我希望扩展到更多表应该是显而易见的)向名为 RESERVATION_TIME 的表添加一列。所有记录最初都填充有“许多年前”的预订时间。
将此与乐观锁定结合使用。当您进入编辑模式时,您
预约您想要的记录
将 RESERVATION_TIME 更新为 NOW,其中 KEY = id 且 RESERVATION_TIME 已超过 30 分钟前
仅当没有人最近设置更新时,此功能才有效。我们的想法是,如果其他用户已经在工作,我们甚至不允许填充编辑屏幕。但我们将该保留设置为在 30 分钟(或其他时间)后过期,这样就不会永久“锁定”任何内容。但请注意,我们并没有(用数据库术语)持有悲观锁。
现在检索数据(也许是与预订相同的 tran)
写回时检查乐观谓词并清除很久以前的保留。
现在,这在任何支持预订系统的应用程序的两个用户之间进行调解。乐观锁在系统的所有乐观用户之间进行调解,因此用户仍然可能会感到恼火,但假设带外更新很少见,那么您应该获得可接受的可用性。
其他一些想法:
| 归档时间: |
|
| 查看次数: |
2028 次 |
| 最近记录: |