2011-06-10 79 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