2011-06-10 76 views
2

我已經開展了一個跟蹤用戶可以從哪裏購買物品的商店的項目。我決定使用Neo4j作爲數據庫。圖表數據庫查詢

這是我記住的數據庫的一部分:每個商店都有一個節點,並且這些節點中的每一個節點都有用於存儲該商店中可用商品的子節點。考慮這種情況:現在一個特定的用戶(他總是去一個特定的商店購買他所有的物品)想要知道從哪裏可以獲得他想要購買的所有(或最多)物品的替代商店。

問題在於,對所有商店及其所有物品進行徹底搜索,然後進行匹配,將佔用大量空間/時間。是否有任何程序/算法可以幫助我以最小的空間/時間成本解決這個問題?

P.S .:請注意,我只想堅持使用Neo4j,因爲它非常有效地解決了許多其他數據庫問題。

回答

3

你的用例實際上是一個圖形數據庫的完美。我可以推薦你實施你的物品作爲主節點並將它們連接到你的商店?

使用Indexing Service爲您的商店節點編制索引。這會讓你快速查找商店,然後任何特定的項目是一個遍歷。獲得一個項目的所有其他商店也只是邊緣遍歷。

希望這會有所幫助。

+1

爲了補充這個問題,下面是一個來自相似領域的舊例子:[Warehouse domain model](http://wiki.neo4j.org/content/Warehouse)。也許有必要看看。 – nawroth 2011-06-10 22:18:12

+0

感謝Perception和nawroth :) 幫助我清除疑惑... – c0da 2011-06-11 07:41:21