GIS空间数据库(52)MAPGIS长事务版本工作原理

地理数据库创建的时候即创建一个“缺省”版本,它是以后创建的任何版本的父版本或者祖先版本。任何用户对“缺省”版本都可以编辑。用户可以根据需要创建版本,并且确定版本的访问权限。版本权限包括私有的、保护的和公有的。

打开版本

用户打开对象类、要素类、关系类的时候可以指定打开哪个版本。用户要编辑某个类的时候,需要具备以下条件:

  • (1)该类已经版本化。没有版本化,则需要注册版本。
  • (2)用户成功打开自己需要编辑的版本。

用户对版本化的类进行编辑(Append、Update、Delete)都会改变对应的地理数据库的状态,所以同一个类在不同的状态看上去的结果就不同。

冲突检测

但用户保存编辑结果时,下列两种情况存在冲突检测:

  • (1)多个用户打开并编辑同一个版本,当多个用户对同一个要素进行了编辑,则保存编辑结果时要进行冲突检测。
  • (2)多个用户分别打开不同的版本,并进行编辑,各自保存结果时不存在冲突,但合并版本时,需要检测同一个要素是否被多个用户编辑,编辑结果是否存在冲突。
    冲突的类型有“更新更新”冲突、“删除更新”冲突、“更新_删除”冲突。

解决冲突

产生冲突集后,用户可以选择交互方式解决冲突。用户可以选择保留当前的编辑结果,也可以是编辑之前的结果,还可以选择保留目标的结果。冲突集中的冲突可以单个解决,也可以同时解决。

提交

用户在解决完冲突后,将结果提交到当前版本或父版本。提交的过程同样会产生新的状态,所以用户看到的某个版本的类是数据库不同状态叠加的结果。

如果对本文有其他疑问,可以在本文下方留言,或者到 麻辣GIS问答 提问。
本站QQ群:291616564 麻辣GIS
微信公众号:malagis,扫描二维码直接关注。

打赏¥1

作者:,GIS爱好者。
分享本文,请您带上本文链接
分享到:

发表评论