产品目录包含文章。每一篇文章都有特定的属性。这些属性,如材料、大小、形状等由一些文章共享。例如,工具有3种尺寸(6“、8”、10")和2种材料(304、316)。在目录中,您现在可以找到6条记录,对应于可能组合的每个版本。当您添加另一个属性时,这将非常快地上升,例如,您现在有18条记录。我正在考虑是否应该将属性保留在节点中,以便每个属性都有18个节点,例如
(n:Tool {name:"X", voltage:"230", size:"6"})并搜索属性的节点以找到正确的节点,或者是否尝试将这些关键属性设置为节点并将工具节点连接到属性节点,例如
(n:Tool {name:"X"}) -[:HAS_SIZE]- (s:Size {size:"6"})
(n) -[:HAS_VOLTAGE]- (v:Voltage {voltage:"230"}) a.s.o.并尝试通过以下路径找到节点X。最后一个选项可能还有一个好处,那就是我可以通过选择所有可用选项来填充表单域,例如所有电压节点。
最后一个可能导致许多节点和关系,当数字增加时,例如有20个属性节点,我不确定如何找到我的节点X?然后,查询可能如下所示
MATCH (n:Tool) -[:HAS_SIZE]- (s:Size)
MATCH (n:Tool) -[:HAS_VOLTAGE]- (v:Voltage)
MATCH (n:Tool) -[:MADE_OF]- (m:Material)
where s.size = "6" AND v.voltage="230" AND m.material ="304"
return n这将成为非常大的查询。
也许有人有一篇文章/帖子的链接,其中显示了这种数据模型的基本布局?谢谢!
发布于 2020-02-23 12:14:51
您可以浏览这些幻灯片https://www.slideshare.net/mobile/neo4j/graphtour-neo4j-murrelektronik。它表明您可以走得更远,比如将属性值建模为节点,包括对基于其他属性计算的属性的支持、多语言支持和单位之间的转换。披露:我们是这个项目的一部分,并为建模做出了重大贡献。我们还提供了UI。
https://stackoverflow.com/questions/60357425
复制相似问题