首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何为多个项目设计数据库

如何为多个项目设计数据库
EN

Stack Overflow用户
提问于 2011-09-15 14:39:42
回答 4查看 494关注 0票数 1

我想知道什么是组织我的数据库的最佳方式。让我解释一下:

我正在启动一个新的“大”项目。这个大项目将由几个小部分组成。一般来说,很多项目并不是相互关联的,它们只是大项目的特点。

所有项目都有一个共同点,那就是要使用它的用户。

所以我的问题是:

  • 是否应该为每个项目创建不同的DB (当前每个项目将包含4-5个表)
  • 如何处理用户?是为所有用户创建一个数据库,还是在每个DB中复制users表?请记住,关于用户的信息在每个项目中都被大量使用,这不仅是为了识别目的。

提前谢谢你的建议。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2011-09-15 14:47:10

这在很大程度上取决于您选择使用的数据库.

如果这些“子项目”被设计成一个连贯的单元,那么我强烈建议您将其保存在同一个数据库中。一个备份,一个恢复,一个单位。

为了组织目的,如果您使用的数据库支持它,请在每个项目中选择不同的架构。PostgreSQL和Server是两个数据库(以及其他数据库),它们毫不费力地支持这一点。

对于像MySQL这样的数据库,我建议您为每个子项目选择一个简短的前缀,并相应地对所有表进行前缀。例如"P1_Customer“。

共享数据将出现在它自己的模式或前缀中,比如Global或类似的东西。

实际上,这是我们将主数据库从MySQL转换到PostgreSQL的众多原因之一。我们一直是这两种功能的大量用户,我非常感谢PostgreSQL提供的功能。如果您是在windows环境中,SQL Server也是一个很好的数据库IMO。

票数 1
EN

Stack Overflow用户

发布于 2011-09-15 14:44:47

如果小项目是“大项目的特性”,那么我看不出为什么您不希望主项目只需要一个user表。你设置问题的方式让这个问题看起来是真的,“如果小项目1中有一个用户A,那么‘大’项目中必须有一个用户A。”如果是这样的话,您应该让用户在大数据库中,而不是重复,除非您有更多的限定细节。

票数 1
EN

Stack Overflow用户

发布于 2011-09-15 14:44:52

我认为正确的答案是“视情况而定”。

让您的组织沿着单一集中系统的道路前进,在许多层面上都是好的。我想总的来说我会推荐这个。

然而:

如果您的开发计划会有很大的不同,或者不同的子项目的用户体验会有很大的不同,那么最好将它们分开。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7432695

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档