1

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

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

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

我理解的事情:

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

  2. 这个Master,clone和back to master会是常事。

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

我能得到一些关于如何处理这种情况的建议吗?

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

4

2 回答 2

0

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

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

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

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

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

于 2012-10-11T23:09:15.493 回答
0

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

于 2012-10-11T21:07:19.597 回答