我最近接管了一个需要帮助的SQL Server2000数据库的开发工作。我们计划很快将其升级到SQL Server 2005。这个数据库的表中没有审计字段(CreatedBy、CreatedDate等),没有外键,整体设计也很糟糕。有六个程序使用内联SQL和其他旧的/坏的做法直接访问数据库。
我想要清理模式和数据访问。对于一个好的起点,你有什么建议吗?这是一个生产数据库,它必须在不断改进的同时继续工作。
发布于 2008-10-20 19:14:31
您可能必须从访问数据库的应用程序开始。您很可能会发现,对数据库模式的任何更改都会破坏其他应用程序。我发现的最常见的罪魁祸首是select * sql,然后是根据列位置访问数据。如果在最后一列之前插入一列,则该代码将中断。此外,除非对新列使用默认值,否则所有insert命令都将失败。
最好的办法是了解这些外部程序是如何使用数据库的,然后设计一个新数据库,然后将每个程序一次一个地迁移到新数据库中。
在生产环境中对此数据库进行更改几乎肯定会中断其他应用程序。
发布于 2008-10-20 19:22:51
您可以在保持视图背后的当前模式/接口的同时,对模式进行更正、分析、标准化等。
在视图上使用before trigger可以确保应用程序按照预期进行写入和读取。
通过这种方式,您可以开始将客户端应用程序迁移到新的模式,同时允许当前应用程序工作。在新的模式中,您的数据(DRI、FK、DF、CK等)更加安全。
这也保持了每月运行一次的意想不到的电子表格的接口契约的一致性,并且没有人知道它对于月末报告是必不可少的……
https://stackoverflow.com/questions/219477
复制相似问题