【发布时间】:2020-06-06 23:47:55
【问题描述】:
产品目录有文章。每篇文章都有特定的属性。这些属性,如材料、尺寸、形式等,由一些物品共享,例如。一个工具有 3 种尺寸(6"、8"、10")和 2 种材料(304、316)。在目录中,您现在可以找到 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
这将成为非常大的查询。
也许有人有文章/帖子的链接,其中显示了此类数据模型的基本布局? 谢谢!
【问题讨论】:
标签: neo4j data-modeling