在Property中使用Relationship的Neo4j属性的正确理由是什么? (包括何时何时不在的示例使用它们)
考虑Team A
和Team B
使用的计算机,其中每个团队都有自己的内部值id
用于计算机:
Node = Team : properties = {'name'='Team A'}
^
|
Relationship = "Used By..."
|
Node = Computer : properties = {'Type':'MacBook', 'CPU':'i7', 'id'='TeamA1-MBKi7'}
如果Team B
具有相同的关系但id
的值不同:
将属性id
移出Computer
节点并进入关系属性是否正确?
e.g。
Node = Team : properties = {'name'='Team A'}
^
|
Relationship = "Used By..." : properties = {'id'='TeamA1-MBKi7'}
|
Node = Computer : properties = {'Type':'MacBook', 'CPU':'i7'}
答案 0 :(得分:3)
要解决您的具体示例,您可以添加新的Model
节点标签来描述计算机类型,如:
(:Team {name: 'Team A'})<-[:USED_BY]-(:Computer {id: 'TeamA1-MBKi7'})-[:IS_A]->(:Model {type:'MacBook', cpu:'i7'})
这将允许多个Computer
节点共享相同的模型信息。
为了解决您更普遍的问题,以下是一些想法: