【问题标题】:Merge two cloned databases back to the Master DB (MSSQL)将两个克隆的数据库合并回主数据库 (MSSQL)
【发布时间】:2012-10-02 13:41:06
【问题描述】:

数据库类型是 MSSQL。网站技术是 PHP。

场景:我在办公室有一个主数据库。它被克隆了两次,并被送到了世界各地的两个不同的活动中。数据被更改,新数据被添加,两个克隆数据库中的一些数据被删除。

活动结束,克隆的两个数据库都返回办公室。我现在的任务是将数据库合并回一个主数据库。

我理解的事情:

  1. 如果同一行的数据在两个克隆上都被修改,则需要(人工)做出决定以决定采取哪一个。

  2. 这个Master,clone和back to master会很常见。

  3. 因为有很多表,所以里面有很多引用。我需要确保将数据注入主数据库时,引用保持不变。

我可以就如何处理这种情况获得一些建议吗?

*请注意,让各种活动地点直接访问主数据库并不是我的奢侈品。我必须假设每个事件都处于离线状态。

【问题讨论】:

  • 您将不得不逐行执行逻辑。真的没有更多的帮助可以提供。你似乎很清楚你需要做什么。它只是丑陋无聊的代码。

标签: php sql sql-server database merge


【解决方案1】:

这正是 Merge-Replication 旨在处理的情况类型。在这里查看我的文章系列:Stairway to SQL Server Replication

【讨论】:

    【解决方案2】:

    这是您在发送数据库之前应该提出的问题类型。

    您需要查看的主要考虑因素之一是您的主 ID 数据类型。我建议在自动递增整数上使用 GUID,因为这样在两个数据库中创建的新记录不会共享 id。这将使您的生活变得更加轻松。

    您应该发送数据库之前查看的另一件事是在所有行中包含时间戳列。这也将使您的生活变得更加轻松。

    使用 guid 和时间戳来查找跨 2-3 个数据库的表中的所有修改记录是一件简单的事情。

    使用 guid 在多个数据库的表中查找所有新记录是一件简单的事情。

    【讨论】:

      猜你喜欢
      • 2013-12-08
      • 1970-01-01
      • 1970-01-01
      • 2011-06-23
      • 2011-07-29
      • 1970-01-01
      • 1970-01-01
      • 2023-02-22
      • 1970-01-01
      相关资源
      最近更新 更多