我正在为一个SaaS应用程序创建一个多租户(共享模式)数据库。应用程序将允许订阅公司(租户)与其他公司(帐户——如供应商、业务合作伙伴、客户等)进行协作。用户将与租户和帐户相关联。
这是我的问题:从设计的角度来看,是否可以将租户和帐户放在一个表中?我认为"是的",因为一个公司就是一个公司,不管他们是租户还是客户。此外,我正在考虑使用is_tenant (Boolean)等字段来解密租户,并可能将特定于租户的信息放在单独的表中。下面是一个建议的模式:
- companies (company_id, is_tenant, name, address等)
- 用户(user_id, name, email, username, password等)
- 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的文章《多租户数据架构》,虽然很有帮助,但它没有给出一个答案。
关于此模式的任何其他想法/注释/陷阱将非常感谢。
我也同意…如果所有属性都相同,则不需要为创建另一个表(数据契约)。
我们也在用那种东西。在SAAS框架中,你总是需要小心创建表,否则重构将花费大量精力。迁移。
我有一个问题!无法看到任何"Company_Information"表,该表将包含公司特定信息(不是您的租户)