我已经承担了一个项目,跟踪用户可以从哪里购买商品的商店。我决定使用Neo4j作为数据库。
这是我考虑的数据库的一部分:每个商店都有一个节点,每个节点都有存储该商店中可用商品的子节点。
考虑这样的场景:现在,一个特定的用户(他总是去一个特定的商店购买他所有的商品)想知道从哪里可以买到他想要购买的所有(或最大)数量的商品的替代商店。
问题是,对所有商店及其所有商品进行详尽的搜索,然后进行匹配,将占用大量空间/时间。有没有什么程序/算法可以帮助我以最小的空间/时间成本解决这个问题?
附言:请注意,我只想坚持使用Neo4j,因为它非常有效地解决了许多其他数据库问题。
发布于 2011-06-11 00:41:38
您的用例实际上非常适合使用图形数据库。我可以建议您将项目实现为主节点,并将它们连接到商店吗?
使用Indexing Service为存储节点建立索引。这将让你快速查找商店,然后任何特定的项目都是一次遍历。在这一点上,获取一个项目的所有其他商店也只是边缘遍历。
希望这能有所帮助。
https://stackoverflow.com/questions/6309376
复制相似问题