数据库便于比较

时间:2010-08-25 07:10:19

标签: database synchronization nosql

我们有一个应用程序,它将元数据信息存储在数据库中(某些表之间有关系)。元数据可以通过Web应用程序进行编辑,也可以直接操作SQL Server数据库中的值。

问题:元数据发生变化,需要在不同环境(测试,登台,制作等)之间进行合并。有一些工具(例如RedGate)可以提供帮助,但如果正在使用自动生成的ID,那么比较数据库仍然需要做很多工作(因为它现在在我们的数据库中,是的,一种方法是使用自然键使比较更容易)。

但是,我们的元数据可能不一定存储在SQL数据库中 - 它可以作为文档存储在NOSQL数据库(MongoDB,CouchDB,RavenDB)中,甚至可以存储在简单的XML数据库(也许是Berkeley DB XML?)中。存储为XML文件似乎可行(因为它更容易比较和合并文件而不是数据库)但可能不是一个好的选择,因为需要一些并发机制,某种程度的事务支持。 我们不需要复制到其他服务器,也不需要高可用性等。

存储数据的要求:

  • 某种ACID
  • 应该在Windows上运行
  • 简单比较(双向同步)
  • (可选)用于查看数据库中的内容的GUI
  • (可选)导出到文件(JSON,XML)

有哪些选择?

2 个答案:

答案 0 :(得分:1)

为什么要将存储与您正在执行差异的表示混淆?

我将所有内容保存在SQL中,但是当需要进行比较时,将所有重要数据(而不是ids)选择为XML格式,并使用XML差异工具(或者csv格式,并使用纯文本比较器)。

答案 1 :(得分:0)

我从未使用它,但CouchDB内置支持db之间的双向同步。