2012-01-10 75 views
0

我開始關注NoSQL數據庫。
我想我的主要概念是將數據存儲爲「映射」,即NoSQL通過唯一標識區分的鍵值對。NoSQL數據庫(地圖)

在這一點上我很困惑(關於設計數據庫時)。

這是否(數據存儲爲「地圖」)意味着我們存儲在NoSQL集合中的數據必須是「同質的」?
Map相同Java例如,其中的鍵都是相同的類型和值都是相同的類型?

也是在NoSQL數據庫中支持參照完整性的概念嗎?或者,因爲它們存儲爲地圖,我將不得不 編寫代碼手動更新任何相關集合?

回答

4

如果我們談論的MongoDB:

  • 上有DB側沒有參照完整性強制執行。您必須在應用程序代碼中執行此操作。觸發器和級聯更新/刪除也在你身上。

  • 文檔可以是複雜的樹狀結構,其中鍵是字符串,值可以是different types

  • 文件不需要是同質的。同一個集合可以包含任何結構和字段集的文檔。

+0

@ Sergio:所以參考完整性實施是由其他NoSQL數據庫提供的,但不是由MongoDB提供的?這是您在第一個註釋中的含義嗎? – Cratylus 2012-01-10 08:38:41

+0

@ user384706:我非常瞭解MongoDB。其他解決方案 - 不是很多。但是,從我的頭頂來看,我不能說出其中一個這樣做。他們被稱爲「NoSQL」的原因是:-) – 2012-01-10 08:40:42

+0

@ Sergio:我在那裏看到一個名爲Morphias的庫,它在Mongo上執行一些ORM員工。如果我使用這樣的庫,他們會不會照顧參考完整性? – Cratylus 2012-01-10 09:54:54