数据库类型是MSSQL。网站技术是PHP。
场景:我在办公室有一个主数据库。它被克隆了两次并被送往世界各地的两个不同的活动。数据被更改,新数据被添加,一些数据在两个克隆数据库中被删除。
事件结束,两个克隆的数据库都回到了办公室。我的任务是将数据库合并回一个主数据库。
我理解的事情:
如果在两个克隆上修改了同一行的数据,则需要做出(人类)决定决定采取哪种方法。
这个Master,克隆和回到master会很常见。
由于有很多表,因此有很多引用。我需要确保何时将数据注入主数据库,引用成立。
我可以就如何处理这种情况获得一些建议吗?
*请注意,让各种活动地点直接访问主数据库并不是我所拥有的奢侈品。我必须假设每个事件都是脱机的。
答案 0 :(得分:0)
这正是Merge-Replication旨在处理的情况类型。在这里查看我的文章系列:Stairway to SQL Server Replication
答案 1 :(得分:0)
这是您在发送数据库之前应该询问的问题类型。
您需要关注的主要考虑因素之一是您的主要ID数据类型。我建议使用GUID而不是自动递增整数,因为这样在两个数据库中创建的新记录将不会共享ID。这将使您的生活更加轻松。
在发送数据库之前,你应该看看 的另一件事是在所有行上都包含一个timestamp列。这也将使您的生活更加轻松。
使用guid和时间戳在2-3个数据库中查找表中的所有已修改记录是一件简单的事情。
使用guid在多个数据库中查找表中的所有新记录是一件简单的事情。