【发布时间】:2015-04-14 08:55:45
【问题描述】:
我们正处于一个新的多租户 SaaS 应用程序的规划阶段,并且已经达到了一个决定点。在设计多租户应用程序时,是选择一个包含所有客户数据的单一数据库(使用“customer_id”列)更好,还是每个客户都有一个独立的数据库更好?无论数据库决策如何,所有租户都将使用相同的代码库。
在我看来,拥有单独的数据库可以使备份/恢复更容易,但代价是增加了开发和升级的复杂性(升级 1 个数据库比 500 个更容易)。如果情况需要转移,也更容易/可能将单个客户拆分到单独的专用服务器。同时,在尝试全面了解客户如何使用该软件时,聚合数据变得更加困难。
我们预计在推出后至少一年内,客户数量将少于 250 人,但他们将成为大客户,之后还会有更多客户。
由于这是我们进入 SaaS 的第一次飞跃,我们肯定希望从一开始就做到这一点。
【问题讨论】:
-
我为你添加了multi-tenant 标签。您可能想要单击它并阅读一些问题和答案。 Here's one of mine 和 an article from Microsoft。
标签: mysql database multi-tenant