設計非關係型數據庫

從MySql到MongoDB的數據庫設計,在思路上要做很大的改變。MySQL代表的是關係型數據庫,所以在設計模型時往往會按照三種實體數據關係去設計:1.一對一 2.一對多 3.多對多。這三種關係足以映射業務邏輯上的需求。很多開發者在沒接觸非關係型數據庫之前都會按照這個思路去規整數據。但是如果將同樣的邏輯嵌套在設計非關係型數據庫中,上面提到的三種關係可能無法應付。

就針對一對多的關係而言,在MongDB內還需再將“多”細化。是一對少、一對多還是一對無窮多?在一對少的情況下,數據可以直接多層嵌套對象。這樣的優點在於一次查詢即可獲得和對象相關的所有細化內容。但同時其設計也限制了直接查找被嵌套在內層的對象。在一對相對多的數據量上,數據底層可以將對象的ObjectID嵌套在內。這樣的方法與關係型數據庫的外鍵相似,可以有效的建立數據之間的關係,同時也避免數據的重複性。在處理一對無窮多的數據關係時,最好的設計方案應該是引用父類的ObjectID。

總而言之,非關係型數據庫的設計不復雜,但在一定的程度突破了關係型數據庫的設計理念,因此在設計過程中需要注意兩者之間的不同。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章