NEO4J数据模型

NEO4J数据模型,neo4j,data-modeling,Neo4j,Data Modeling,产品目录中有文章。每件物品都有特定的属性。一些文章共享材料、尺寸、形状等属性,例如,一个工具有3种尺寸(6“、8“、10”)和2种材料(304、316)。在目录中,您现在可以找到6条记录,每种可能的组合都有6条记录。当您添加另一个属性,例如电压(230、400、500),这将非常快地增加你现在有18张唱片。 我正在考虑是否应该将属性保留在节点中,以便每个属性都有18个节点,如 (n:Tool {name:"X", voltage:"230", size:"6"}) 然后在节点中搜索属性以找到正

产品目录中有文章。每件物品都有特定的属性。一些文章共享材料、尺寸、形状等属性,例如,一个工具有3种尺寸(6“、8“、10”)和2种材料(304、316)。在目录中,您现在可以找到6条记录,每种可能的组合都有6条记录。当您添加另一个属性,例如电压(230、400、500),这将非常快地增加你现在有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
这将成为非常大的疑问

也许有人链接到一篇文章/帖子,其中显示了这种数据模型的基本布局?
谢谢!

您可以浏览这些幻灯片。这表明您可以更进一步,比如将属性值建模为节点,包括对基于其他节点计算的属性的支持、多语言支持和单元之间的转换。披露:我们是该项目的一部分,为建模。我们还提供了用户界面。

哇,做得很好,非常有用-我看到你在概念上走得更远,而且非常出色。这个解决方案非常完美,以一种有用的方式拥有所有不同的属性和属性,并将每个产品链接到这些属性-最后,一个产品会有很多链接到每个可能的属性,你会得到表单上的数据安全性,因为您只允许配件属性列表。您是否有机会向我发帖,询问如何查找其中一种产品,以了解您如何使用路径到达单个对象?那太好了-谢谢!