【发布时间】:2013-06-26 16:49:11
【问题描述】:
我们有一个旧数据库,其表结构经过深思熟虑,几乎没有关系设置,也没有命名方案。我创建了一个新的数据库,该数据库具有干净的关系数据结构,实现了正确的设计实践。
我正在寻找有关将旧数据迁移到新格式的不同方法的建议。这将需要大量的数据重塑,这不会很有趣。数据被大量访问,挑战将是使所有相关数据(帐户、重要服务等)的两个数据库保持同步。
我认为触发器可能是这里的方法 - 但也许有一种我不知道的不同方法(可能是 MS Sync Framework,或代码级数据适配器,因为数据太多,所以工作量更大访问代码遍布各处,经典的 ASP 和 .Net 遍布数十个项目)。有问题的数据库是 SQL Server 2005,在 SQL Server 2000 兼容模式下运行。
【问题讨论】:
-
我个人会编写一个程序来移动数据,并对其进行测试,直到结果如您所愿。然后,当您想上线时,您可以在停机期间运行它并完成工作。您确实需要彻底测试,特别是如果大量更改结构并且您正在新数据库中添加参考完整性规则。如果数据库写得不好,那么运行在它上面的软件很有可能也是。
-
是的,软件也写得不好。这是公司与许多不同的开发人员长期开发事物的情况之一。以一团糟告终。使用迁移应用程序一次迁移数据并不是一个真正的选择,因为旧系统将保留一些旧产品,而新产品会迁移到新系统。
-
我的一个想法是在新数据库中创建一个“适配器”架构,该架构将包含将旧主键与新主键相关联的表,并允许在两个数据库之间保持数据同步二。新系统不会更新旧系统,但对旧系统的更改总是会完全使用触发器传播到新系统。
标签: sql sql-server sql-server-2005 database-design data-binding