我的项目中的一些人似乎认为,使用一个通用的开发数据库,每个人都连接到它是最好的事情。我认为不是,每个开发人员都有自己的数据库(具有定期更新的数据转储)是最好的。我是对还是错?您在这些方法中遇到过任何问题吗?
发布于 2009-05-07 07:25:28
磁盘空间和CPU应该足够便宜,以便每个开发人员都可以运行自己的数据库实例,并在版本控制下进行自动构建。这是为了让开发人员大胆地在数据库上进行黑客攻击,与任何其他开发人员的并发黑客行为隔离开来。
当然,需要注意的是,他们对其私有实例所做的任何更改对其他任何人都是无用的,除非它可以在构建过程中自动应用。因此,需要有一个严格的策略,即应用程序代码不能依赖于任何数据库状态,除非该状态由版本控制的、对 进行单元测试的更改来表示。
有关将数据库定义视为项目代码的另一部分以及协调更改和重构的理论和实践的优秀指南,请参阅Scott W.Ambler和Pramod Sadalage的Refactoring Databases: Evolutionary Database Design。
发布于 2009-05-07 05:10:31
我喜欢使用自己的数据库副本进行开发,因为它为您提供了快速更改事物的灵活性,而不必担心它会如何影响其他人。
然而,如果所有的开发人员都在开发他们自己的数据库副本,那么最终将每个人的工作合并在一起变得越来越困难。
我认为在日常开发中让开发人员在本地副本上工作可以两全其美,但每个开发人员可能应该定期将他们的工作合并到一个公共副本中。编写大量的单元测试也很有帮助。
发布于 2009-05-07 05:09:41
我们在所有开发人员(20多个)之间共享一个数据库,但我们已经将其结构化,以便每个人都有自己的表。
如果您正确地构建了应用程序,则不需要为每个开发人员单独创建一个数据库。它应该是可配置的,它使用哪个数据库或表前缀,这样你就可以很容易地在实例之间移动它(单元测试,系统测试,验收测试,生产,灾难恢复等等)。
使用单一数据库的好处是可以分摊维护成本。您不需要让DBA尝试处理大量数据库(或者,如果您是一家小型数据库公司,您不会让每个开发人员都尝试维护自己的数据库,而这些数据库在开发中得到了更好的利用)。
https://stackoverflow.com/questions/832956
复制相似问题