【问题标题】:Multiple databases vs. one database with IDs used to separate organizations多个数据库与一个具有用于分隔组织的 ID 的数据库
【发布时间】:2011-05-06 03:21:36
【问题描述】:

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

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

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

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

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

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

【问题讨论】:

    标签: database database-design architecture


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

      您可能会发现 Joel Spolsky 关于这个主题的 cmets 很有趣。这是 Joel 讨论 Fogbugz 的多租户数据库架构的播客记录:

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

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

      【讨论】:

        【解决方案3】:

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

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

        【讨论】:

          猜你喜欢
          • 2010-11-25
          • 2014-11-27
          • 1970-01-01
          • 2014-04-28
          • 2011-08-22
          • 2012-01-07
          • 1970-01-01
          • 2010-12-25
          • 2011-10-01
          相关资源
          最近更新 更多