【发布时间】:2014-09-10 21:16:47
【问题描述】:
这是更多的建筑问题。创建多租户应用程序的最佳实践是什么?为所有租户使用单一数据库还是为每个租户使用单独的架构/数据库实例?
【问题讨论】:
-
您期望拥有多个数据库有什么好处?显然,单个数据库更简单,因此您应该确定使用重复数据库的理由(安全性、模块化等)。但是,在做“可能可行的最简单的事情”方面犯了错误。
-
在我看来,多数据库的主要好处是它提供了租户数据的物理隔离。此外,潜在的租户数据库可以部署在租户服务器上,允许他们快速轻松地进行数据挖掘操作
-
一般来说,我不认为物理隔离有那么大的价值(这并不意味着它在您的特定情况下没有价值)。同样,您可以相当容易地为客户提供数据库中数据子集的转储。如果这些是真正的问题,而不是未来的“潜在”功能,那么重复数据库可能是有意义的。但是为未来做计划很棘手,而且为了可能发生的事情而过度复杂化您的基础架构可能会反过来咬您一口。
标签: java architecture multi-tenant