Neo4j:如何为作为节点的关系属性建模?

Neo4j:如何为作为节点的关系属性建模?,neo4j,reification,Neo4j,Reification,假设我有一个简单的关系,比如 CREATE (a:Company { name:"Apple" })-[:BUYS]->(b:Company { name:"Beats" }) 现在我想收集关于:BUYS关系的元数据-是哪个用户创建了该关系,以及确认这一点的来源是什么。为此,我创建了一个新节点,并将其他节点连接到该节点: MATCH (a:Company { name:"Apple" }),(b:Company { name:"Beats" }) CREATE a-[:IS_BUYER

假设我有一个简单的关系,比如

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节点? 当然,你可以保持购买关系。但是,您应该首先检查以下公司-[:是买家]>