我项目中的一些人似乎认为,在每个人都连接到一个公共开发数据库的情况下使用它是最好的。我认为不是这样,每个开发人员都有自己的数据库(定期更新数据转储)是最好的。我是对还是错?你在这些方法中遇到过什么问题吗?

最佳答案

磁盘空间和CPU应该足够便宜,每个开发人员都可以运行自己的数据库实例,并在版本控制下自动生成。这需要允许开发人员大胆地对数据库进行黑客攻击,与任何其他开发人员的并发黑客攻击隔离开来。
当然,需要注意的是,除非可以在构建过程中自动应用,否则他们对私有实例所做的任何更改对任何其他人都是无用的。因此,需要有一个坚定的策略,即应用程序代码不能依赖于任何数据库状态,除非该状态由版本控制、单元测试的DDL更改表示。
有关将数据库定义视为项目代码的另一部分并协调更改和重构的理论和实践的优秀指南,请参见scott w.ambler和pramod sadalage的Refactoring Databases: Evolutionary Database Design

09-30 14:13
查看更多