2012-08-14 16 views
1

我正在創建一個客戶(用戶)來自不同組織的平臺。因此,我想根據所屬組織將他們的數據完全分開。你會如何建議將這些數據存儲在mongo db中?在哪個級別上?可能用於SaaS的mongo體系結構

+0

你有多少個組織? – 2012-08-14 10:15:30

+0

一個組織的數據大小(平均值和最大值)是多少? – AlphaB 2012-08-14 11:51:33

回答

0

您可以爲每個組織創建一個文檔,並將用戶的詳細信息放入根文檔內的子文檔中。

如果整體用戶的配置文件太大而不適合MongoDB文檔大小(16 mg),那麼您可以通過爲每個用戶創建一個文檔並添加一個指向組織的字段來使用不同的方法。

2

您是否因安全原因(即合規或法規)或僅僅爲了管理/易用性而保留數據?

如果是前者,我會至少使用單獨的數據庫,如果不是單獨的MongoDB實例。通過獨立的實例,您可以通過iptables之類的東西在IP級別執行隔離,以便您可以將不同的實例綁定到不同的IP範圍,代表不同的組織假定他們將訪問數據。

如果是後者,我還是會用不同的數據庫去,因爲它給你的能力to have different users on a database levelversion 2.2,併發會on a database level(所以沒有共享寫鎖的,例如,你必須如果你在收集級別分割它)。

作爲一個僅供參考,這裏的一對架構設計MongoDB中一些額外的信息 -