根据多租户数据架构文章,有三种实现多租户的方法。
我有以下细节:
我想知道哪种方法更适合我?
发布于 2015-10-06 05:54:30
我认为选项2是最好的,但您仍然存在需求1的问题。备份和还原在每个模式中都不可用。您需要使用Import或任何自定义工具来处理这个问题。公共表将有单独的架构。
在选项1中,您需要处理需求4,公共表将在所有数据库之间进行复制。
发布于 2015-10-06 06:14:11
在所有5个条件中,最重要的条件是条件4--这意味着有些表在所有租户中都是常见的。如果某些表是通用的,则排除了单独的数据库(即选项1)。
您可以继续使用选项2、共享数据库和单独的模式,但是租户的数量要少得多(在您的例子中是3)。在这种情况下,添加维护单独模式的开销是一种应该避免的开销。因此,我们也可以跳过选项2,直到我们评估选项3。
选项3-共享模式的共享数据库将是您最有效的选择。它避免了维护单独模式的开销,并允许租户之间使用公共表。在共享模式中,通常跨表使用租户标识符。Hibernate已经对此类租户标识符提供了支持(以防您使用Java-J2EE实现)。唯一的问题可能是性能,因为将所有三个租户的数据放在同一个表中将导致数据库访问\搜索性能降低,您将不得不进行反规范化和索引。
我建议继续使用选项3.
发布于 2015-10-06 15:00:35
对我们来说,我们已经开发了一个人力资源资源计划( ERP ),它被40多个客户和一千多个用户所使用,用于多租户的方法是第三个。
此外,所使用的技术分离表之一是遗传。
https://stackoverflow.com/questions/32961979
复制相似问题