目前正在開展預訂管理系統。這是一個多租戶應用程序,將有大約50個租戶。多租戶數據架構
我們正在計劃舉辦一些託管服務提供商像winasp.net等這ASP.Net MVC4/SQL Server 2008
申請(尚未決定)
Business Model Diagram
有用戶喜歡超級管理員的多層次,租戶管理員,客戶服務,醫生在上述圖片中描述。
爲了實現這一點的數據庫模型,我們選擇在提到Shared Database with Shared Schema
方法MSDN Multitenant Data Architecture
意味着我們增加了一個列TenantId in each table
我們共享數據庫&共享模式決定是基於以下做
沒有租戶(50 +)
易租戶
之間有着共同的元數據移動大租戶(一/二)成一個單獨的實例,如果承租人有更多的數據量
我們現在正在進行中,我們還怕以下問題需要解決
數據安全 - >每次需要通過/檢查TenantId
備份單個租戶 - >需要編寫一個SQL查詢備份和考慮外鍵/自動增量備份在
數據量頭痛。單個數據庫存儲所有租戶的數據,查詢數據很慢
索引(不知道我們是否需要索引的所有TenantId列在每個表中,因爲它涉及到所有WHERE
還有其他選項,如
- 單數據庫/房客
- 共用數據庫,獨立模式
而且This Article
增添了更多的一些方法
我們希望得到我們的當前設計一些建議/更好的設計。
新辦法符合上述業務圖
租戶管理/客戶服務用戶必須能夠看到子租戶記錄
查詢外特性
租戶之間共享元數據共享
租戶特定的元數據
特定於租戶的數據域(可選)
輕鬆備份
我覺得這太寬泛了,不能在一個問題上回答。將這些問題分解成與實現相關的編程問題的具體問題可能是明智的。 –
這個問題,我提出了一些最基本的信息/建議,以幫助我以正確的方式實施。在閱讀了很多文章後,只要更高層次的建議就足夠了,並且沒有找到我在此提出的正確線索。 – Billa
我不能提供200賞金,因爲沒有賞金鍊接可用,因爲它關閉:( – Billa