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

问题描述:

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

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

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

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

在生产中更改此数据库几乎可以保证打破其他应用程序。

您可能能够纠正,分析,标准化等架构,同时维护视图背后的当前架构/接口。

使用视图之前的触发器可以确保应用程序的写入和读取操作符合他们的预期。

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

这也保持界面合同一致,为每月运行一次的意外电子表格,没有人知道它是至关重要的月末报告...