【问题标题】:Databases for easy comparison便于比较的数据库
【发布时间】:2010-08-25 07:10:19
【问题描述】:

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

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

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

存储数据的要求:

  • 某种酸
  • 应该在 Windows 上运行
  • 轻松比较(双向同步)
  • (可选)GUI 以查看数据库中的内容
  • (可选)导出到文件(JSON、XML)

有哪些选择?

【问题讨论】:

    标签: database synchronization nosql


    【解决方案1】:

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

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

    【讨论】:

    • 好吧,在您进行比较之后,您需要使用更改更新数据库 - 是否有任何工具可以轻松做到这一点?我的意思是 - 提取重要数据 XML 并从更新的 XML 中导入数据?
    • 如果这是您的用例,可能会编写带有 where 子句的插入语句来同步您的数据。或者,编写一个 XSLT 从生成的 xml diff 生成 SQL?
    • 这是一个选项。但我更喜欢使用一些工具而不是自己编写。我认为有类似的东西,但从对这个问题的回答中我知道没有。
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-04-26
      • 1970-01-01
      • 2012-06-04
      • 2011-11-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多