我已经开展了一个跟踪用户可以购买商品的商店的项目。我决定使用Neo4j作为数据库。
这是我想到的数据库的一部分:每个商店都有一个节点,每个节点都有子节点,用于存储该商店中可用的商品。
考虑这种情况:现在一个特定的用户(他总是去某个特定的商店买他所有的商品)想知道他可以从哪里获得他想要购买的所有(或最大)商品数量的替代商店。 / p>
问题在于,对所有商店及其所有商品进行详尽搜索,然后进行匹配将占用大量空间/时间。是否有任何程序/算法可以帮助我以最小的空间/时间成本解决这个问题?
P.S。:请注意,我只想坚持使用Neo4j,因为它可以非常有效地解决许多其他数据库问题。
答案 0 :(得分:3)
您的用例实际上非常适合图表数据库。我可以建议您将项目实施为主节点并将它们连接到您的商店吗?
使用Indexing Service为您的商店节点编制索引。这将使您快速查找商店,然后任何特定项目是一个遍历。获取项目的所有其他商店也将只是边缘遍历。
希望这有帮助。