我剛讀這在在mongoid.org網站(ODM爲Ruby)MongoDB不適用於關係數據嗎?
如果您發現有比嵌入式那些你 應用多個關係協會,建議您不要使用 的MongoDB,並移動到一個關係數據庫。
這是一個有效的陳述嗎?
我剛讀這在在mongoid.org網站(ODM爲Ruby)MongoDB不適用於關係數據嗎?
如果您發現有比嵌入式那些你 應用多個關係協會,建議您不要使用 的MongoDB,並移動到一個關係數據庫。
這是一個有效的陳述嗎?
MongoDB是一個面向文檔的數據庫。交易和關係不在此解決方案中提供。儘管存在這種限制,它還是提供了更具可擴展性的環境
您應該去mongodb.org有更多的信息解決方案。
這是一個有效的聲明?
我不這麼認爲。我相信過度嵌入和避免關係是MongoDB最常見的兩個初學者的錯誤。更重要的是,數據如何被結構化爲並不重要。重要的是你需要什麼查詢,以及你是否提前知道。
關係數據庫擅長將不同表格上的查詢約束條件組合在一起:「哪些客戶居住在我們經營大多數商店的城市,在陽光燦爛的日子裏購買?」一個SQL數據庫可以很好地回答這個問題。使用正確的索引,您可以快速完成這些查詢的整個類。如果你不知道在編譯時會被問到的問題,那就特別有用。
不幸的是,這是以複雜性爲代價的:根據您提出的問題,結果具有不同的結構,但典型的LOB應用程序大多需要獲取對象並將其存儲回來。而且,創建SQL查詢也不是微不足道的,因此您必須手動編寫它們或使用複雜的軟件(一種對象關係映射器)來創建查詢,組裝對象並將所有對象拼接在一起。避免這種可怕的軟件和複雜性,是從我的角度使用MongoDB的關鍵原因。因此,對象文檔映射器的想法對我來說通常聽起來很詭異。
關於鎖,交易,「比例」等的討論基本上是正交的。
如果您事先知道您的查詢,MongoDB可以cope with relations relatively well,您可以避免大多數事務。如果您需要商業智能查詢,那麼使用關係數據庫可能會更好。
我想強調的是,正確的建模和查詢和/或聚合幾乎總是可以避免交易。而且,即使那些被提及的野生查詢可以使用各種技術來實現,但並不像使用SQL那麼容易。但是,正如mnemosyn正確地提到的那樣,除了那些邊緣情況之外,其他一切都變得更加容易,在某些情況下更是如此。 – 2015-04-03 10:58:01
好吧mongodb不是一個sql,它是一個數據庫,它沒有連接 – Abhishek 2015-04-03 09:40:05
當你的數據是*什麼都不是關係時,你可以看看像Neo4j這樣的圖形數據庫,它比關係數據庫更容易擁抱關係。 – Philipp 2015-04-03 09:45:23