1
80
这是不幸的,因为客户有时会有一种误解,即只有物理隔离才能提供足够的安全性。 有一篇有趣的MSDN文章,标题是 Multi-Tenant Data Architecture ,您可能需要检查。这就是作者如何解决对共享方法的误解:
关于技术和业务方面的考虑,本文简要分析了某种方法比另一种方法更合适的地方:
更新: 进一步更新预期租户数量。 对于大多数情况(如果不是所有情况),预期的租户数量(10万)应该排除多数据库方法。我不认为你会想到维护10000个数据库实例,每天都要创建数百个新实例。 仅从这个参数来看,它看起来像共享数据库,单模式方法是最合适的。您将只为每个租户存储大约50MB的内存,并且没有每个租户的附加组件,这使得这种方法更加合适。 上面引用的msdn文章提到了解决共享数据库方法的安全考虑的三种安全模式: 当您对应用程序的数据安全措施充满信心时,您将能够为客户提供 Service Level Agrement 这提供了强有力的数据安全保证。在您的SLA中,除了保证之外,您还可以描述将要采取的措施,以确保数据不会受到损害。 更新2: 很明显,微软的人就这个问题发表了一篇新的文章,原来的链接消失了,这是新的: Multi-tenant SaaS database tenancy patterns (向谢克勒致敬) |
2
15
我的经验(尽管是SQL Server)是多数据库的发展方向,每个客户机都有自己的数据库。所以尽管我没有MySQL或RubyonRails的经验,但我希望我的输入能增加一些价值。 原因包括:
我希望这能提供一些有用的信息!有更多的原因,但我的头脑一片空白。如果它重新启动,我将更新:)
编辑:
把我的答案保持在这里,因为它可能对其他人在一艘类似的船上有一些用处(更少的租户) |
3
15
下面是Salesforce.com上关于如何实现多租户的白皮书的链接: http://www.developerforce.com/media/ForcedotcomBookLibrary/Force.com_Multitenancy_WP_101508.pdf 它们有一个带有500个字符串列(value0、value1,…)的大表。价值500)。日期和数字以字符串的形式存储,以便在数据库级别转换为其本机类型。有些元数据表定义了每个租户可以唯一的数据模型的形状。还有用于索引、关系、唯一值等的附加表。 为什么麻烦? 每个租户都可以在运行时自定义自己的数据模式,而无需在数据库级别进行更改(更改表等)。这绝对是很难做到的,但非常灵活。 |
4
8
正如您所提到的,每个租户一个数据库是一个选项,并且与它有一些更大的权衡。它可以在较小的规模下很好地工作,例如一个数字或低10的租户,但除此之外,它变得更难管理。这既包括迁移,也包括保持数据库的正常运行。 每个模式模型不仅对每个模式都有用,尽管仍然在所有租户之间运行迁移变得困难,而且在1000多个模式下,Postgres可能会开始出现问题。
更可扩展的方法是让租户随机分布,存储在同一个数据库中,但跨不同的逻辑碎片(或
tables
)根据您的语言,有许多库可以帮助您实现这一点。如果你用的是Rails,那就有一个图书馆来实施租赁。
|
hello_programmers · Mysql从其他表输出一列 1 年前 |
Community wiki · 这个MySQL语句出了什么问题? 1 年前 |
Community wiki · 优化从同一表中提取的多列的查询 1 年前 |
Popo · Sql查询:返回数据库中不可用的where条件 1 年前 |
Hamdan Nuramdani · 对账单中一周内不同表中的数据求和 1 年前 |
Kugelfisch · 用php为数据库加密数据 1 年前 |