构建多租户应用程序的最佳实践是什么?

时间:2009-04-04 13:42:03

标签: azure cloud relational saas

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

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

2 个答案:

答案 0 :(得分:8)

对于数据库:

:一种。将所有内容放在同一个数据库中,在表格上放置一个tenant_id列

优点:容易做到

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

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

优点:提供比选项A

更好的数据泄露保护

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

<强>℃。为每个租户设置一个数据库

优点:绝对没有数据从一个租户泄漏到另一个租户的可能性

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

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

答案 1 :(得分:5)

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

这是本系列的最后一篇帖子之一,其中包含指向以前帖子的链接:http://ayende.com/Blog/archive/2008/08/16/Multi-Tenancy--Approaches-and-Applicability.aspx