这在建模中是一个很好的复杂值类型候选者吗?

时间:2018-02-27 16:18:04

标签: neo4j cypher

例如,我想表示产品的“重量”。重量必须由两个东西来指定,一个值和一个单位,即75千克。所以:

create(p:Prduct {name:"iphone"})-[r:weight]->(w:Weight {value:300, unit:'g'})

或从Weight节点创建两个关系。

这是用单位模拟典型数量的合理方法吗?

1 个答案:

答案 0 :(得分:1)

这取决于您将在数据库中运行的查询。但在我看来,如果数据库的所有:Weight节点只与一个:Product节点相关,那么您可能应该将这些属性放入产品节点中。那就是:

(:Product {name:"iphone", weight_value:300, weight_unit:'g'})

而不是:

(:Product {name:"iphone"})-[r:weight]->(:Weight {value:300, unit:'g'})

使用产品节点中的所有属性具有以下优势:在按单位重量过滤时,您无需横切:wheight关系。