【发布时间】:2011-07-07 16:38:00
【问题描述】:
我正在为 SaaS 应用程序创建一个多租户(共享模式)数据库。该应用程序将允许订阅公司(租户)与其他公司(帐户 - 例如供应商、业务合作伙伴、客户等)协作。用户将与租户和帐户相关联。
这是我的问题:从设计的角度来看,是否可以将租户和帐户放在一张表中?我在想“是”,因为公司就是公司,无论他们是租户还是帐户。此外,我正在考虑使用诸如 is_tenant (Boolean) 之类的字段来破译租户,并可能将租户特定信息放在单独的表中。这是一个建议的架构:
- 公司(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,虽然很有帮助,但它没有提供答案。
非常感谢有关此架构的任何其他想法/cmets/陷阱。
提前致谢。
【问题讨论】:
标签: database-schema saas multi-tenant