在主要编写管理软件的公司开发环境中,每个开发人员都应该使用自己的数据库实例,还是应该在开发过程中使用中央数据库实例?每种方法的优缺点是什么?其他环境和其他产品呢?
发布于 2008-10-24 17:50:27
如果你们都共享同一个数据库,如果有人对数据库进行了结构更改,并且代码没有与之“同步”,那么您可能会遇到一些问题。
我强烈建议每个开发人员使用一个DB,唯一的原因是你不想做“写”测试,然后看到其他人立即覆盖你。一个简单的例子?你试图为一个网站展示产品。在所有产品消失之前,一切都会正常工作。有问题吗?另一名开发人员决定使用该产品的“活动”标志来测试其他东西。在这种情况下,事务甚至可能无法工作。故事的结尾,你花时间调试别人的动作。
我强烈建议偶尔将临时数据库复制到开发人员数据库,以同步结构(或者更好地,有一个工具从头开始重建数据库)。
当然,我们需要脚本来更改数据库,并且所有内容都在源代码控制中。
发布于 2008-10-24 18:13:39
数据库环境稀缺的时代已经一去不复返了。我在一台装有5x15k SCSI磁盘的XW9300上写这篇文章。这台机器将在相当合理的时间长度内运行大量的ETL作业,并且(在2007年年中)我在ebay上花费了大约1700 job,包括磁盘。从开发人员的角度来看,特别是在数据仓库等以数据库为中心的项目中,开发人员和DBA之间的界限非常模糊。在我写这篇文章时,我正在为SQL Server2005数据仓库构建一个分区管理框架。
出于以下原因,开发人员应该拥有自己的一个或多个开发数据库(IMO):
我见过小团队在14个环境中工作,同时在一个工作站上有7个活动的环境。在数据库繁重的工作中,比如ETL,你需要处理整个表,在单一的开发环境中工作会浪费时间,或者让你的时间如履薄冰。
此外,您还可以为数据库平台使用单用户开发许可证,这可以为您节省仅在数据库许可方面的工作站成本。大多数开发人员许可证(微软和OTN是我熟悉的几个例子)将允许您在单个开发人员免费或象征性价格的单个工作站上使用该系统。
相反,共享开发服务器上的许可条款通常有些模糊,我曾多次看到供应商试图敲诈勒索客户获得开发服务器上的许可。
发布于 2008-10-24 17:48:00
我们的每个开发人员都有一个功能齐全的数据库。像任何其他代码一样,更改是脚本化的,并且是源代码控制的。
https://stackoverflow.com/questions/234580
复制相似问题