我阅读了Microsoft Elastic DB工具的文档,我想问一下与多个租户共享数据库以及使用唯一索引的最佳实践。
我们假设我们有一个用户表,其中保存了租户的所有用户。我们定义电子邮件对每个用户必须是唯一的。但是,如果一个用户出现在2个租户中并且他想重复使用他的电子邮件,那么他就不能这样做,因为唯一的索引已经存在。
在这种情况下,我们需要在唯一索引中包含租户ID。这是正确的方法吗?在这种情况下,我们需要在所有查询中明确使用租户ID,以便不影响性能。
答案 0 :(得分:1)
是的,包括每个分片表中的租户ID是SaaS编程模型中的常见做法。以下是针对SaaS应用程序的每个数据库模型的每个数据库的多租户到单个租户的一些背景:https://docs.microsoft.com/en-us/azure/sql-database/sql-database-design-patterns-multi-tenancy-saas-applications#multitenant-data-models