Cypher:如何创建依赖于更多元素的多重关系?

Cypher: how to create multiple relationship dependent by more elements?

是否可以像这样创建一组节点之间的关系? situation in RDBMS DB

一个用户可以启用一个服务,一个服务有一组账户可以使用,一个用户关联一组账户。

目的是从用户开始查找启用了哪组服务,以及针对每项服务的相关帐户。

谢谢。

不清楚您是否真的需要 UserAccount 之间的直接关系(这可能是多余的,因为 Service 也有 Account)。在这个答案中,我假设不需要它们。

根据我的假设,下面是一个示例,说明如何创建图示图表(减去一个关系):

CREATE (u:User {id: 123})-[:HAS_SERVICE]->(s:Service)-[:HAS_ACCOUNT]->(a:Account);

至"find, starting from a user, which set of services are enabled and, for each service, the related account":

MATCH (u:User {id: 123})
OPTIONAL MATCH (u)-[:HAS_SERVICE]->(s:Service)
OPTIONAL MATCH (s)-[:HAS_ACCOUNT]->(a:Account)
RETURN u, s, a;

此查询将 return 具有 UserServiceAccount 值的行。如果用户没有 ServiceServiceAccount 值可以是 NULL。如果 Service 没有 Account,则 Account 值可以是 NULL