Database 多个数据库与一个数据库的ID用于分离组织

Database 多个数据库与一个数据库的ID用于分离组织,database,database-design,architecture,Database,Database Design,Architecture,在组织可以注册并使用web应用程序来管理数据的情况下,以下两个选项的优点和/或缺点是什么 每个组织一个数据库其中每个组织的数据完全分离为单个数据库,一个(非常小的)集中数据库保存组织及其数据库标识符的基本列表 整个应用程序的一个数据库,其中所有实体存储在一个大型数据库中,并使用每个表上的组织标识符列进行分隔 需要考虑的其他一些方面: 数据永远不会在数据库中的组织之间共享,登录凭据也不会共享 一些组织将允许普通公众注册一个帐户以提交数据,而其他组织则不允许 我们计划公开一个公共API,供组织

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

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

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

需要考虑的其他一些方面:

  • 数据永远不会在数据库中的组织之间共享,登录凭据也不会共享
  • 一些组织将允许普通公众注册一个帐户以提交数据,而其他组织则不允许
  • 我们计划公开一个公共API,供组织将其当前流程与我们的应用程序集成。组织将能够生成API密钥以允许访问其数据,但不会有跨组织的公共API
  • 公司将在应用程序中存储潜在的敏感数据
根据您的经验和/或知识,做出此设计决策的正确方式是什么(或者是否有“正确”的方式?

是对MSDN(多租户数据体系结构)的深入讨论


我想补充一点,没有对错之路。这一切都取决于需求、现有专业知识和成本。

你可能会发现乔尔·斯波尔斯基对这个话题的评论很有趣。以下是Joel讨论Fogbugz的多租户数据库体系结构的播客记录:


(从[50:45]开始搜索问题的记录本。)

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

如果所有组织都有一个数据库,并且这些组织分布在24个时区,那么这就需要一个24/24(也许是7/7)DBMS。我相信不是所有的产品都有这种功能