我有一个一般的数据库设计问题:什么时候创建一个新数据库而不是向现有数据库添加新表更好?该问题与设计/可维护性以及性能问题有关。
背景:我们通过每晚将数据导入我们称为 RM2 的数据库来镜像客户的主表。一些新的(ASP.Net-)项目也需要访问这些数据,现在我想知道是否应该为每个项目创建新数据库或将它们的表与 RM2(当前大小:37991.94 MB)合并。
我有一个一般的数据库设计问题:什么时候创建一个新数据库而不是向现有数据库添加新表更好?该问题与设计/可维护性以及性能问题有关。
背景:我们通过每晚将数据导入我们称为 RM2 的数据库来镜像客户的主表。一些新的(ASP.Net-)项目也需要访问这些数据,现在我想知道是否应该为每个项目创建新数据库或将它们的表与 RM2(当前大小:37991.94 MB)合并。
我不一定会回答你的问题,但我也会给你一些其他问题来考虑:
我想这可能已经回答了你的一些问题。;-)
这不是数据库设计问题。这是一个组织问题。这个问题的组织方面比技术问题重要得多。
答案是:让开发人员的生活更轻松的任何事情
例如,你说:
一些新的(ASP.Net-)项目也需要访问这些数据。
这些项目与您的项目的集成程度如何?您实际上是否共享数据(或写入相同的表)?例如,如果您对其中一个表进行了重大更改,您是否需要同时更改其他项目中的代码?(有时真的很难在两个项目之间同步)。
如果您实际上不共享数据(除了客户数据,我认为它实际上是只读的),那么使用单独的数据库(OR 模式)。这使得更改更易于管理。
另一个技巧是在每个数据库中拥有一组关于客户数据的视图,这些数据位于另一个模式中的其他地方。
因此,每个项目都有一个数据库,每个数据库中都有客户数据的视图,这些数据位于一个单独的数据库中。
性能应该不是真正的问题,除非数据库位于不同的机器上。
如果任何项目只想使用自己的数据库,您可以为项目获取其他数据库。但是如果你想获得这个数据中心,你应该为每个项目创建一个其他共享数据库+自有数据库。