SaaS,多租户(共享架构) - 一个或两个表?

时间:2011-07-06 18:26:35

标签: database-schema saas multi-tenant

我正在为SaaS应用程序创建一个多租户(共享架构)数据库。该应用程序将允许订阅公司(租户)与其他公司(诸如供应商,业务合作伙伴,客户等帐户)协作。用户将与租户和帐户相关联。

这是我的问题:从设计的角度来看,将租户和帐户放在一个表中是否可以?我在想“是”,因为无论公司是租户还是帐户,公司都是公司。此外,我正在考虑使用诸如is_tenant(布尔)之类的字段来解密租户,并且可能将租户特定信息放在单独的表中。这是一个提议的架构:

  • 公司(company_id,is_tenant,姓名,地址等)
  • 用户(user_id,姓名,电子邮件,用户名,密码等)
  • company_users(company_id,user_id)
  • tenant_information(company_id,billing_address,billing_state等)
  • tenant_accounts(tenant_id,account_id) - 将租户与帐户相关联[其中tenant_id和account_id将为公司表格的f_keys]

我仔细阅读了MS文章Multi-Tenant Data Architecture,虽然很有帮助,却没有提供答案。

非常感谢有关此架构的任何其他想法/意见/陷阱。

提前致谢。

1 个答案:

答案 0 :(得分:0)

我也同意这一点...... 如果所有属性都相同,则无需为该创建另一个表(数据协定)。

我们也在使用那种东西。在SAAS框架中,您始终需要小心创建表,否则将需要花费大量精力来重构和重构。迁移。

我有一个问题!无法看到任何“Company_Information”表格,其中包含公司特定信息(不是您的租户)