【发布时间】: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