2013-06-20 39 views
0

我正在考慮用Java對象創建類似樹狀或網狀的指南,並將其映射到數據庫中。 以下每個步驟導致另一個等等,下面的問題/任務/取決於以前的行動。 (見圖)應該可以爲e創建循環。 G。重複一些前面的步驟。在數據庫中代表樹狀結構/網絡狀指南

我應該選擇哪個數據庫?標準的關係型連接,連接一個表可能與自己(外鍵 - >主鍵)連接節點或像OrientDB那樣的基於文檔的(基於圖形),創建真正的樹?怎麼樣面向對象的數據庫,如db4o

什麼會有更好的表現和/或更容易實現?

在此先感謝。


更多的想法: 我可能會不同的動作(web服務的調用,凡)和/或媒體(文字,圖片,視頻)添加到一個節點(步驟),從而導致其他步驟,也許找回到前者等等。


enter image description here

回答

1

我認爲你是在正確的軌道與圖形數據庫上。 OrientDB看起來很好。當然,我也會扔掉Neo4j,它應該同樣好。

在我看來,關係數據庫很容易拋出,因爲它沒有很好地映射到問題空間。您可能能夠創建良好的結構來存儲關係等,但查詢會非常可怕並且複雜。

我會問的最重要的問題是,「查詢語言是什麼樣子的?」存儲數據通常並不難。你可以很好地設計結構和加載數據。

當你需要查詢和思考你的數據雖然......是查詢語言容易推理嗎?它代表了對你來說重要的概念嗎?

對於圖表,我非常喜歡Gremlin。 https://github.com/thinkaurelius/titan/wiki/Gremlin-Query-Language

它有一個非常自然的語法來傳達圖的概念。我會檢查一下OrientDB的替代方案。

+0

是的,我也看過Neo4j。似乎與OrientDB非常相似。主要它應該很容易在Java中使用。兩者都應該這樣做。 (儘管對其他推薦)公開 – JavaKaffee

+0

經過一番研究:e。 G。 db4o的? objectDB與基於文檔/圖形的DB相比有什麼缺點? – JavaKaffee

+0

我沒有使用面向對象的數據庫,所以我不知道。 =( – ryan1234