【问题标题】:Neo4J data modellingNeo4J 数据建模
【发布时间】:2018-08-07 01:30:04
【问题描述】:

我有一个用例。一个product_combosold_at 两个或更多stores 在不同的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"}

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

提前致谢]1

【问题讨论】:

    标签: data-structures neo4j graph-databases


    【解决方案1】:

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

    Combo 的总价格也应作为该ComboPack 节点的属性放置(此处复制数据以换取更快的sum 查询)

    更新

    根据您的要求,您应该将关系Store -[]-> Combo 分解为更小的部分。

    一种方法是引入SpecificCombo节点:

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

    【讨论】:

    • 谢谢!但我的情况如下:产品以低于State:AZProd 1的价格出售$20Prod 2$10并以低于State:MOProd 1$25的价格出售Prod 2$15 有没有可能解决这种情况?
    猜你喜欢
    • 2012-10-10
    • 2017-09-18
    • 1970-01-01
    • 1970-01-01
    • 2014-06-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多