我想了解noSQL數據庫的想法,更準確地說,neo4j圖形數據庫背後的概念。我有SQL數據庫(MySQL,MS SQL)的經驗,但管理分層數據的侷限性使我擴展了我的知識。但現在我有一些問題,我找不到他們的答案(也許我不知道要搜索什麼)。對象數據庫介紹
想象一下,我們有世界上的國家的名單。每個國家每年都有GDP。每個國家的GDP均由不同來源計算 - 世界銀行,其政府,中央情報局等。在這種情況下組織數據的最佳方式是什麼?
裏面傳來記住最簡單的事情是讓節點(該值是虛構的):
China:
GDPByWorldBank2012: 999,
GDPByCIA2011: 994,
GDPByGovernment2012: 1102,
在關係數據庫中,我將在三個表分割數據:國家,來源和值,在那裏價值我會有國內生產總值的價值,年份,國家的id和來源的id。
其他想到的事情是創建節點中央情報局,世界銀行,但節點政府看起來很奇怪。雖然,這個想法是有關係(valueIfGDP):
CIA -> valueOfGDP - {year: 2011, value: 994} -> China
World Bank -> valueOfGDP - {year: 2012, value: 999} -> China
這看起來對我來說很奇怪,更重要的是,當我們從一個源中的所有年增加值時會發生什麼?我們會有多重關係或什麼?
對不起,如果我的問題太愚蠢了,我會很高興,如果有人解釋我或告訴我什麼書/文章閱讀。
在此先感謝。 :)
非常感謝你的非常描述性的答案。還有一個問題 - 如果我們擴大我們的中國範例並向鄰國添加數據,可以說俄羅斯,我想我必須在中國和俄羅斯之間建立外向和即將到來的關係:HAS_BORDER_COUNTRY {borderLength:1000}?有什麼更好的 - 在中國的節點上擁有totalBorderLength屬性,還是總結HAS_BORDER_COUNTRY關係的borderLength屬性會更好?我應該花更多時間玩數據庫,以便更好地理解它。 – suricactus 2013-03-17 18:19:19
不客氣:) 再說一遍,如果不考慮用例,這有點難說。從你所描述的,我的2美分會去總結borderLength。 – Rolf 2013-03-17 19:52:11