原文连接:系列https://martinfowler.com/data/https://martinfowler.com/data/
Evolutionary Database Design (martinfowler.com)
架构的进化。如何允许更改架构并轻松迁移现有数据?
如何应对项目的变动
迭代开发:很长一段时间人们把数据库设计视为绝对需要预先规划的东西
局限性:未能实现24*7持续工作
实践:
开发人员与DBA密切合作
所有数据库工程文件都要有应用程序代码进行版本控制:
应用程序代码、单元和功能测试以及其他代码,如构建脚本, 以及用于创建环境的puppty或chef脚本。
同样,所有数据库工件都应在版本控制中,在相同的 其他人正在使用的存储库。这样做的好处是:
- 只有一个地方可以查看,使项目中的任何人都可以更轻松地查看 找东西。
- 对数据库的每个更改都会被存储,以便在出现任何问题时轻松进行审核 发生。我们可以跟踪数据库的每次部署,直到 架构和支持数据。
- 我们防止数据库与 应用程序,这会导致检索和更新数据时出错。
- 我们可以轻松创建新环境:用于开发、测试以及 生产。创建软件运行版本所需的一切都应 位于单个存储库中,因此可以快速签出和构建。