Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/neo4j/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Neo4j中创建与关系的关系_Neo4j_Cypher - Fatal编程技术网

在Neo4j中创建与关系的关系

在Neo4j中创建与关系的关系,neo4j,cypher,Neo4j,Cypher,是否可以在Neo4j中创建与关系的关系 用例如下所示: (:Question {name:"What movie?"})-[:Option]->(:Movie {name:"Movie1"}) ^ | [:Vote]

是否可以在Neo4j中创建与关系的关系

用例如下所示:

(:Question {name:"What movie?"})-[:Option]->(:Movie {name:"Movie1"})
                                     ^   
                                     |
                                  [:Vote]
                                     |
                                  (:User)
  • 我有一大堆问题,比如“我们应该看什么电影?”
  • 每个问题都有许多选项,如“电影1”、“电影2”等
  • 对于每个问题,我希望用户能够投票选择他们最喜欢的选项
图表最好如下所示:

(:Question {name:"What movie?"})-[:Option]->(:Movie {name:"Movie1"})
                                     ^   
                                     |
                                  [:Vote]
                                     |
                                  (:User)
我意识到解决这个问题的一个方法是:

(:Question)-[:Option]->(:Movie)<-[:Vote]-(:User)
(:问题)-[:选项]->(:电影)
是否可以创建与关系的关系

不,这是不可能的。根据:

关系连接两个节点,并保证具有有效的 源节点和目标节点

也就是说:关系的起点和终点应该是一个节点

我认为您应该在数据模型中做一些更改。例如:

可能
选项
可以是一个节点,而不是一个关系。更有意义,不是吗?这样:

 (:Category)-[:HAS]->(:Option)    
此外,
投票
也可以是一个节点,而不是一个关系。。。这样,当用户进行(关系,ahn?)投票时,该投票节点将引用该选项及其相关的类别

 (:Category)-[:HAS]->(:Option)
          \           /
  [:FOR_CATEGORY][:FOR_OPTION]
            \      /
             (:Vote)
                |
            [:MAKES] 
                |
             (:User)
例如,如果您需要删除一个
选项
,从而删除与其相关的
:Vote
,您可以执行以下操作:

MATCH (o:Option {id:10})<-[:FOR_OPTION]-(v:Vote)
DETACH DELETE o
DETACH DELETE v

MATCH(o:Option{id:10})有没有机会编辑这个问题以提供一些真实的例子?我不确定如何解释category/option/thing/vote模式。当然可以。有道理——而且ASCII艺术比我的要好!:DI希望我自己不必管理引用完整性,因为在您的示例中,如果类别或选项被删除,我仍然需要删除投票节点。对的但至少它克服了引用ID问题,这是一个很好的特性。是的,你是对的<代码>分离删除
仅删除与要删除的节点相关的关系。。。请注意,
:Vote
节点同时引用了
:Category
:Option
。预期的行为是什么?如果我删除了一个
:选项
,那么我还需要删除
:投票
以及与
类别
的关系?或者最后一个可以保留?@JimHeising我更新了我的答案,在答案上添加了一个查询示例,使用
分离删除
删除
:选项和相关的
投票
,包括涉及的关系。