【发布时间】:2014-06-18 11:30:27
【问题描述】:
假设我有一个简单的关系,比如
CREATE (a:Company { name:"Apple" })-[:BUYS]->(b:Company { name:"Beats" })
现在我想收集有关 :BUYS 关系的元数据 - 哪个用户创建了该关系以及确认这一点的来源是什么。为此,我创建了一个新节点并将其他节点连接到它:
MATCH (a:Company { name:"Apple" }),(b:Company { name:"Beats" })
CREATE a-[:IS_BUYER]->(ab:Buyout { name:"Apple-Beats" })<-[:IS_SELLER]-b
MATCH (u:User { name:"Fred" }),(n1:Newspaper { name:"Washington Post" }),
(n2:Newspaper { name:"Financial Times" }),(ab:Buyout { name:"Apple-Beats" })
CREATE u-[:CREATED]->ab<-[:CONFIRMED_BY]-n1,ab-[:CONFIRMED_BY]->n2
现在我有几个问题:
- 因为在大多数情况下查询只对
:BUYS感兴趣 关系,我会保持原样并为这些查询获得更好的性能,对吗? - 还有其他更好的方法来对此进行建模吗?
- 为物化节点生成名称/ID 的好方法是什么?
- 有没有办法将
:BUYS关系的删除级联到对应的:Buyout节点?
【问题讨论】:
标签: neo4j reification