SQL Server 2000/2005中Brownfield数据库开发的最佳方法

时间:2008-10-20 18:55:30

标签: sql-server database sql-server-2005 sql-server-2000 brownfield

我最近接管了需要一些帮助的SQL Server 2000数据库的开发。我们计划很快将其升级到SQL Server 2005。这个数据库没有表上的审计字段(CreatedBy,CreatedDate等),没有外键,可怕的整体设计。有六个程序使用内联SQL和其他旧/不好的做法直接访问数据库。

我想清理架构和数据访问。你对一个好的起点有什么建议吗?这是一个生产数据库,它必须在改进时继续工作。

2 个答案:

答案 0 :(得分:1)

您可能必须从访问数据库的应用程序开始。您很可能会发现对数据库模式的任何更改都会破坏其他应用程序。我发现最常见的罪魁祸首是select * sql,然后根据列位置访问数据。如果在最后一列之前插入一列,则该代码将中断。此外,除非您为新列使用默认值,否则任何插入命令都将失败。

最好的办法是了解这些外部程序如何使用数据库,然后设计一个新数据库,然后将每个程序一次一个地迁移到新数据库。

在数据库投入生产时对其进行更改几乎可以保证打破其他应用程序。

答案 1 :(得分:1)

您可以在维护当前架构/接口视图的同时纠正,分析,规范化架构等。

在视图上使用触发器之前,可以确保应用程序按照预期进行写入和读取。

通过这种方式,您可以开始将客户端应用程序迁移到新架构,同时允许当前应用程序正常运行。并且您的数据在其新模式中更安全(DRI,FK,DF,CK等)。

这也使得界面合约与每月运行一次的意外电子表格保持一致,没有人知道它对于月末报告是必不可少的......