1. 程式人生 > >MongoDB資料模型設計學習

MongoDB資料模型設計學習

近來需要設計使用MongoDB,想簡要學習一下。
MongoDB的資料模式是一種靈活模式,其集合並不限制文件結構。這種靈活性讓物件和資料庫文件之間的對映變得很容易,及時資料記錄之間有很大的變化,每個文件也可以很好的對映到各條不同的記錄。但在實際使用中,同一個集合中的文件往往都有一個比較類似的結構。

文件結構

描述文件結構的方式主要有兩種:引用及內嵌。

內嵌

內嵌的方式指的是把相關聯的資料儲存在同一個文件結構之中。MomgoDB的文件結構允許一個欄位或者一個數組內的值作為一個巢狀的文件。如果使用內嵌文件模型,應用程式只需查詢一次就可以獲得所有需要的資訊。
這裡寫圖片描述
一般來說,下述情況建議使用內嵌資料:
1. 資料物件之間有包含關係。
2. 資料物件之間有一對多的關係。

一對一關係

{
   _id: "joe",
   name: "Joe Bookreader",
   address: {
              street: "123 Fake Street",
              city: "Faketon",
              state: "MA",
              zip: "12345"
            }
}

一對多關係

{
   _id: "joe",
   name: "Joe Bookreader",
   addresses: [
                {
                  street: "123 Fake Street"
, city: "Faketon", state: "MA", zip: "12345"
}, { street: "1 Some Other Street", city: "Boston", state: "MA", zip: "12345" } ] }

引用

引用方式通過儲存連結或者引用資訊來實現兩個不同文件之間的關聯。應用程式可以通過解析這些資料庫引用來訪問相關資料。
這裡寫圖片描述
一般來說,下述情況下適合使用引用方式:
1. 當內嵌資料會導致很多資料的重複,並且讀效能的優勢又不足於覆蓋資料重複的弊端
2. 需要表達比較複雜的多對多關係的時候
3. 大型層次結果資料集

參考文獻: