Cypher:如何创建依赖于更多元素的多重关系?
Cypher: how to create multiple relationship dependent by more elements?
是否可以像这样创建一组节点之间的关系?
situation in RDBMS DB
一个用户可以启用一个服务,一个服务有一组账户可以使用,一个用户关联一组账户。
目的是从用户开始查找启用了哪组服务,以及针对每项服务的相关帐户。
谢谢。
不清楚您是否真的需要 User
和 Account
之间的直接关系(这可能是多余的,因为 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 具有 User
、Service
和 Account
值的行。如果用户没有 Service
,Service
和 Account
值可以是 NULL
。如果 Service
没有 Account
,则 Account
值可以是 NULL
。
是否可以像这样创建一组节点之间的关系? situation in RDBMS DB
一个用户可以启用一个服务,一个服务有一组账户可以使用,一个用户关联一组账户。
目的是从用户开始查找启用了哪组服务,以及针对每项服务的相关帐户。
谢谢。
不清楚您是否真的需要 User
和 Account
之间的直接关系(这可能是多余的,因为 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 具有 User
、Service
和 Account
值的行。如果用户没有 Service
,Service
和 Account
值可以是 NULL
。如果 Service
没有 Account
,则 Account
值可以是 NULL
。