多个数据库与一个数据库,其中ID用于分隔组织

时间:2010-11-06 21:22:15

标签: database database-design architecture

在组织可以注册并用于管理数据的Web应用程序的情况下,以下两个选项的优点和/或缺点是什么?

  • 每个组织一个数据库,其中每个组织的数据完全分成单独的数据库,其中一个(非常小的)集中式数据库保存组织及其数据库标识符的基本列表

  • 整个应用程序的一个数据库,其中所有实体都存储在一个大型数据库中,并使用每个表上的组织标识符列进行分隔。

需要考虑的其他方面:

  • 数据库中的组织之间永远不会共享数据,也不会登录凭据。
  • 有些组织会允许公众在应用程序中注册帐户以提交数据,其他组织则不会。
  • 我们计划为组织公开一个公共API,以便将他们当前的流程与我们的应用程序集成。组织将能够生成API密钥以允许访问其数据,但不会有跨组织的公共API。
  • 公司将在应用程序中存储可能敏感的数据。

根据您的经验和/或知识,这个设计决策的正确方法是什么(或者是否有“正确”的方式?)

3 个答案:

答案 0 :(得分:8)

Here是对MSDN(多租户数据架构)的深入讨论。

我想补充说没有正确/错误的方法。这一切都取决于要求,现有的专业知识和成本。

答案 1 :(得分:5)

你可能会发现Joel Spolsky对这个主题的评论很有意思。这是播客的成绩单,其中Joel讨论了Fogbugz的多租户数据库架构:

https://stackoverflow.fogbugz.com/default.asp?W24218

(从[50:45]开始搜索问题的成绩单)

答案 2 :(得分:0)

可能有趣的一个考虑因素:

如果所有组织都有一个数据库,并且这些组织遍布24个时区,则需要24/24(也许是7/7)DBMS。我相信并非所有产品都有。