1
我正在爲SaaS應用程序創建多租戶(共享模式)數據庫。該應用程序將允許訂閱公司(租戶)與其他公司(賬戶 - 如供應商,業務合作伙伴,客戶等)進行協作。用戶將與租戶和帳戶相關聯。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,雖然很有幫助,但它提供的答案很短。
有關此模式的任何其他想法/意見/陷阱將不勝感激。
在此先感謝。
嗨Wali ...感謝您的答覆和投票的信心。很高興知道別人傾向於這種設計。而且,你對公司信息表是正確的。它在那裏,我只是沒有在例子中包含它。那裏有其他想法嗎? – Piet
添加同一主題: 我們在「公司」 - 「供應商」,「客戶」和「租戶」中包含了更多類型,因此我們最終在**公司中添加了一個枚舉而不是bool字段表**。如果你預見到這樣的事情,那麼最好是枚舉。 – Wali
Wali ...您是否願意擁有tenant_accounts表來將租戶與他們開展業務的帳戶(供應商,客戶等)相關聯?或者,你能否在公司表中添加parent_id創建關係?設計是否優越? – Piet