我们应该为每个开发人员分别设置数据库实例

Ami*_*abh 20 sql-server asp.net version-control database-management

开发基于数据库的应用程序的最佳方法是什么?我们可以有两种方法.

  1. 所有开发人员的一个通用数据库.
  2. 为所有开发人员分开数据库.

各自的优点和缺点是什么?哪一种更好的方式?

编辑:更多的开发人员应该更新数据库,我们已经在每台开发人员机器上安装了SqlExpress 2005.

编辑:我们大多数人都在建议一个共同的数据库.但是,如果其中一个开发人员修改了代码和数据库架构.他没有提交代码更改,但架构更改已转到公共数据库.它不会破坏其他开发人员的代码.

phi*_*gen 18

两者 -

我喜欢单个数据库,在上线之前测试更改,或者进入"正式"测试环境.这是您的开发人员的理智检查; 它与实时系统保持同步,并确保他们始终认为彼此的变化.规则应该是,如果它们可能会破坏其他内容,则不会在此处进行更改.

当多个开发人员进行更新时,每个开发人员的数据库都很棒(甚至是必不可少的).它允许他们所需的所有开发灵活性,而不会为其他开发人员破坏事物.

关键是要有一个流程,用于将数据库更改从开发转移到您的实时系统,并坚持您的流程.

  • 我发现"中央"数据库对于测试大量数据(性能等)或生产数据(数据可能不会达到您预期的100%时间)也很有用.正如你所说的那样,直到开发人员确认他的代码没有在他的本地数据库中中断之后才会发生这种情况 (2认同)

Mar*_*ams 10

共享数据库

  • 更简单
  • 减少"它在我的机器上运行"的情况.
  • 强制整合
  • 问题很快发现(快速失败)

个人数据库

  • 永远不会影响其他开发人员,但这在持续集成中也是一件坏事

我们使用共享的开发数据库,​​它很好地工作.我们的架构很少以一种使其向后兼容的方式发生变化,但偶尔会在我们上线之前进行设计更改,我们只是要求其他开发人员进行更新.

我们有单独的开发应用程序(Web)服务器,但它们共享相同的数据库.我们的开发人员可以选择使用他们自己的数据库,因为他们知道如何设置它,并且有时会这样做,但只是暂时的.对我们来说,标准是共享数据库.


May*_*ayo 8

以为我会抛弃它,但为什么不让每个开发人员在他们的桌面上托管他们自己的SQL Server Developer实例,然后为每个其他环境(开发,QA和prod)提供共享服务器?我认为即使Visual Studio Pro附带的基本MSDN(如果您选择它)也包含SQL Server Developer的许可证.

开发人员可以在不影响其他人的情况下在他们的桌面上工作,然后您可以让他们根据您的需要将代码移动到下一个共享环境(随意,每日/每周构建等).

编辑: 我应该补充说,桌面实例允许开发人员执行DBA经常限制共享环境的事情.这包括数据库创建,备份/恢复,分析器等.这些事情并不重要,但它们可以让开发人员提高效率,同时降低他们对DBA的要求.

共享环境对于测试是完全必要的 - 我不建议从桌面到生产.但是,您可以通过允许开发人员以相对较小的成本100%控制给定的数据库环境(包括与其他人的隔离)来添加这么多.