如何处理数据库并发

我应该如何处理事件,其中

  1. 用户A编辑文档
  2. 用户B开始编辑同一个文档
  3. 用户B保存
  4. 用户A保存 - 如果失败,但我应该怎么处理呢? 告诉页面(或实体)已保存别人的用户似乎并不足够。 用户应该知道该文档的一部分/字段已被更改,并确定他是否要重试保存与否。
    • 如果它只是短暂领域,我想我可以比较他们 - 什么在字段比较旧的和新的价值观的有效途径?
    • 如果它是一个长的文本文档,我怎么可以这样做一个差异? 要不怎么那么我应该处理呢? 只是告诉用户某人保存文档你打开后它似乎不就够了吗?

--------------解决方案-------------

在大多数应用中它原来,它实际上不够的,只是告诉该保存失败的用户由于另一个用户更新相同的数据。 这就是所谓的乐观并发:基本上,你认为没有冲突发生,而你处理,其中一个冲突并通过简单地拒绝对同样的数据写操作发生的情况。

任何超出这是自定义编程。 你提供一个差异的建议是具体到您的域。 如果它是关于编辑的文本文档,你可以使用标准的diff文件。 然而,之前去这条路线,问问你自己是否真的值得上花太多的时间...

注意确保您要这个,但在Java中我使用的XStream序列化对象到XML,然后使用差异比较的http://www.crosswire.org/jsword/java2html/org.crosswire.common.diff.index其中XMLS语言。 HTML,看看有什么变化。

如果您只有一对夫妇的实体和用例,那么你可以通过手动实现这一切的行为逃脱,只使用diff引擎比较文本的大斑点。

分类:数据库 时间:2015-03-15 人气:1
分享到:

相关文章

Copyright (C) 55228885.com, All Rights Reserved.

55228885 版权所有 京ICP备15002868号

processed in 1.095 (s). 10 q(s)