伙计们,我有一个大问题。
我正在运行一个后台应用程序,想象一下,我有一个包含可编辑网格视图的表单。
- 100 位用户访问该页面
- 100 用户查看表单页面作为数据库提供的数据
- 100 个用户编辑一些字段
- 在这个例子中如何控制最终数据和一致性?
伙计们,我有一个大问题。
我正在运行一个后台应用程序,想象一下,我有一个包含可编辑网格视图的表单。
取决于你真正想要什么。你有要求吗?你在寻找建议吗?
一种可能的解决方案
如果您有在编辑完成时调用的显式保存操作,
另一种可能的解决方案
如果您想避免第 3 步到第 7 步循环,您始终可以将第 4 步到第 6 步包装在一个事务中,这意味着在解决当前保存之前每隔一次尝试保存块。这是相当繁重的,需要更多的工作,并且可能会有效地降低整体并发性。
另一种可能的解决方案
另一种可能的解决方案是使过程不那么离散而更连续。提供实时数据源。
如果您有保存过程,则在解决之前不会保存任何红色值。
最后(建议)可能的解决方案
如果您没有明确的保存操作,
如果远程服务返回 false,则用例结束,无法修改单元格。如果远程服务返回 true,则用户修改内容,当他们离开单元格或重新加载页面或其他任何内容时,远程服务会释放锁定。
结论
好吧,有点挥手,但脂肪足以咀嚼。考虑一下,有很多可能的解决方案。
在您可以计划和实施对此的技术解决方案之前,即。代码,你需要设计整体解决方案。
换句话说,假设您向 100 个不同的人分发了 100 张纸,每个人都附有该 Web 表单的副本。那 100 个人在他们的纸上草草写下笔记,然后按随机顺序交还给你。
在这种情况下,您如何处理一致性?当你能回答这个问题时,你就可以实施它。
但是,如果不了解您以该形式拥有的数据的更多信息,实际上不可能给您具体的建议。