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