我需要一个模拟简单数据库的数据存储系统,但也可以存储更改历史,并支持分支。
也就是说,几个数据表(不需要支持实际的sql语法)、提交任意更改的选项、标记系统状态的选项和在标记之间移动的选项。
它应该非常接近一个简单的源代码管理系统,例如git。不需要合并等,只需提交更改、放置标记和在标记之间移动(回滚和快进),并且随时具有与指定标记的系统状态类似的“工作副本”。
我可以从头开始实现这样的数据结构,但我更喜欢通过现有的健壮实现来构建它,比如DB引擎等。
有已知的解决方案吗?
最佳答案
以下是您的选择:
ArcSDE-esri的arcgis支持通过arcsde数据层对地理数据库进行版本控制;
Oracle Workspace Manager-Oracle数据库的特性,提供高
版本隔离度和数据历史管理;
SQL:2011时态特性,包括有效时间和事务性
时间支持。
Noms-它是git版本控制系统的一个从哲学上讲分散的数据库后代。
Irmin-它是一个用于持久存储的库,具有内置快照,
分支和还原机制。
SQL:2011支持编辑的“线性”历史记录。
esri和oracle都是很好的候选者,但它们都有用于操作版本的特定于供应商的接口。
在noms中,保留数据库的所有以前版本。您可以简单地跟踪数据库是如何发展到当前状态的,轻松有效地比较任意两个版本,甚至可以从任何以前的版本进行倒带和分支。