在我的客戶關係管理系統中,我計劃現在能夠支持100家企業的規模,但理想情況下這可以擴展到任何規模。MongoDB客戶關係管理數據庫設計效率
它的成立,現在的方式:
每個企業都有數據 的3個部分,每部分都有1000「項」 的每個項目都有30 - 50「數據塊」 - 每個數據塊都有一個id,它對應的條目,指示它是哪種類型的數據的值以及它所持有的值。
100 * 3 * 1000 * 30 = 9000000條數據。
我通常只會在任何給定的時間拉動100個條目,所以只有3000-5000左右的數據塊被拉出,但偶爾一次可能多達1000個條目或更多。
我有收藏業務,部分,條目和數據塊。
我以這種方式設置它,因爲有些業務將保存不同類型的數據而不是其他數據,而SQL數據庫實際上並不適用於此。
樣本數據的產生可能是這樣的:
- 通過名稱找到一個部分(即業務1有一節叫SECTION1)
- 找到那款100項
- 找到30個數據塊對於每個條目
這會導致101找到呼叫。我也可以對這些條目執行查找調用,然後使用具有100或鍵/值對的where數組查找調用數據,這會在其條目ID是100或鍵/值之一時抽取100個數據條目對。
這是一個可擴展的數據庫設計嗎?有更好的方法我應該這樣做嗎?
查看我的編輯更清晰一點。我認爲這將有效地和你的建議一樣高效。 – maxhud 2015-04-01 17:34:21
大概你會想要返回一些部分的所有數據,是嗎?所以它不會是101找到電話,它會是1找到調用來獲取該部分,1找到調用獲得100個條目,然後1找到獲得30 * 100的數據片。但爲什麼你想要爲數據庫中的中央查詢執行3個表連接?如果你想這樣做,不要使用mongodb,使用SQL數據庫連接,因爲你在這裏模擬連接 – jtmarmon 2015-04-01 17:50:45
連接看起來效率很高,特別是如果我只是做一對夫婦而不是100.由於這個原因,我沒有使用SQL數據庫:每個數據塊都有一個「值」字段。該值可以存儲任何類型的數據,並且該數據可以在mongodb中排序。如果是sql,我無法做到這一點。 – maxhud 2015-04-01 17:54:16