11

构建支持多租户(例如软件即服务)的应用程序的最佳实践是什么?

非常感谢扩展此主题的白皮书链接。

4

2 回答 2

11

对于数据库:

A. 将所有内容放在同一个数据库中,在您的表上放置一个tenant_id 列

优点:容易做

缺点:非常容易出现错误:很容易将数据从一个租户泄漏到另一个租户。

B. 将所有内容放在同一个数据库中,但将每个租户放在自己的命名空间中(postgresql 称它们为模式)

优点:提供比选项 A 更好的数据泄漏保护

缺点:并非所有数据库都支持。AFAIK PostgreSQL 和 Oracle 支持它。

C. 每个租户设置一个数据库

优点:绝对不会有数据从一个租户泄漏到另一个租户的机会

缺点:设置新租户更加复杂。数据库连接很昂贵。

我只是从 Guy Naor 那里学到了上述想法。这是他的演示文稿的链接:http: //aac2009.confreaks.com/06-feb-2009-14-30-writing-multi-tenant-applications-in-rails-guy-naor.html

于 2009-04-04T13:55:34.270 回答
9

您可能会在 Oren Eini 的一系列博客文章中找到一些有价值的建议。

这是该系列的最后一篇文章,带有以前文章的链接:http: //ayende.com/Blog/archive/2008/08/16/Multi-Tenancy--Approaches-and-Applicability.aspx

于 2009-04-04T13:55:52.057 回答