【问题标题】:Starting with a single database/single schema database architecture for multi tenancy [closed]从用于多租户的单个数据库/单个模式数据库架构开始 [关闭]
【发布时间】:2014-03-25 06:01:47
【问题描述】:

我对哪种架构数据库方法最好进行了大量研究,最后,我更喜欢单独的数据库方法。但是,大多数托管服务提供商对此并不满意(以 Azure 为例,有 150 DB 的限制)。

我现在的想法是从单个数据库/单个架构开始,在每列中使用租户 ID 来分隔数据,然后当它变得太大/太慢时,寻找扩展选项。

这是个坏主意吗?我应该从一开始就将数据分开吗?我觉得在安全方面,只要我验证我正在调用/检索的数据属于调用客户,这并不重要。

另外,与拥有 5000 个小型数据库相比,使用单个大型数据库是否会更容易扩展?

谢谢!

【问题讨论】:

  • 显然,每种方法都有优缺点
  • 您的计划正是我对多租户应用程序所做的,并且没有任何问题。我认为每个用户的数据库无法扩展,尤其是从 Azure 的成本角度来看(取决于您的定价模型)。您可能希望查看联合,因为它们可以帮助您在以后扩展到更多数据库。
  • 嗨 Craig,我实际上研究了联邦,除非我误解了,否则联邦实际上算作 Azure 定价的数据库,因此具有 4 个联邦的数据库实际上与 5 个独立数据库的成本相同。我可以看到的联合的唯一好处是您没有 150 个数据库的限制。我想一开始就使用共享数据库+模式设置,然后看看它从哪里开始。

标签: sql-server database azure-sql-database scaling multi-tenant


【解决方案1】:

对于云托管,我认为单个多租户数据库是可行的方法。

前段时间我也遇到过同样的问题,因为我们的客户希望保留在他们的服务器上托管数据库的选项,所以我选择了每个租户一个数据库。由于我们在多台服务器上拥有一个代码库和多个数据库,因此我们必须推出一种同步解决方案以确保所有架构保持不变。

我们在存储过程中也有一些业务逻辑,并且必须想办法区分具有全局逻辑的过程和具有特定于该数据库的逻辑的过程。

它有效,但很尴尬,我希望我们可以使用单个数据库

无论如何,就像之前所说的每种方式都有优点和缺点,你只需要决定什么对你来说最重要并解决缺点

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-26
    • 1970-01-01
    • 1970-01-01
    • 2020-07-25
    • 1970-01-01
    相关资源
    最近更新 更多