Neo4J数据建模

时间:2018-08-06 16:52:02

标签: data-structures neo4j graph-databases

我有一个用例。 product_combosold_at的两个或更多store,位于不同的price。并且每个商店都映射到state。 如何构造这种情况。

请按照以下结构查找关系。

Store{name:"Store 1"} -[:LOCATED_IN]-> State{name:"AZ"}
Store{name:"Store 2"} -[:LOCATED_IN]-> State{name:"MO"}
Store{name:"Store 1"} -[:SELLS]-> ComboPack{name:"Combo1"}
Store{name:"Store 2"} -[:SELLS]-> ComboPack{name:"Combo1"}
ComboPack{name:"Combo1"} -[:CONTAINS]-> Product{name:"Prod 1"}
ComboPack{name:"Combo1"} -[:CONTAINS]-> Product{name:"Prod 2"}

我想知道如何放置链接,以便在不同商店/州的产品级别确定每种产品的价格。

预先感谢![enter image description here] 1

1 个答案:

答案 0 :(得分:1)

您可以将价格设置为[:CONTAINS]关系的属性。

Combo的总价也应作为该ComboPack节点的属性放置(这里您复制数据以交换更快的sum查询)

更新

根据需要,应将关系Store -[]-> Combo分解为较小的部分。

一种方法是引入SpecificCombo节点:

(:Store)-[:SELLS]->(:SpecificCombo)-[:IS_A]->(:Combo)
(Combo)-[:CONTAINS]->(Product)
(:SpecificCombo)-[:INCLUDE {price: 15$}]->(Product)