2016-06-08 13 views
-3

ist es möglich, eine Beziehung zwischen solchen Knoten zu erstellen? situation in RDBMS DBCypher: Wie erstellt man mehrere Beziehungen abhängig von mehr Elementen?

Ein Benutzer kann für einen Dienst aktiviert werden, ein Dienst verfügt über eine Gruppe von Konten, die verwendet werden können, und ein Benutzer ist mit einer Gruppe von Konten verknüpft.

Ziel ist es, ausgehend von einem Benutzer zu ermitteln, welche Dienste aktiviert sind, und für jeden Dienst das zugehörige Konto.

Danke.

Antwort

0

Es ist nicht klar, ob Sie tatsächlich eine direkte Beziehung zwischen einem User und einem Account müssen (es könnte überflüssig sein, da Service s auch Account s). In dieser Antwort werde ich davon ausgehen, dass sie nicht benötigt werden.

meine Annahme gegeben, hier ist ein Beispiel dafür, wie Sie Ihre dargestellten Diagramm (minus eins-Beziehung) erstellen:

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

To „finden, von einem Benutzer beginnen, die von Dienstleistungen eingestellt werden aktiviert und, für jeden Dienst, das zugehörige Konto ":

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

Diese Abfrage Zeilen mit User, Service und Account Werten zurück. Die Werte Service und Account können NULL sein, wenn der Benutzer keine Service s hat. Und der Account Wert kann NULL sein, wenn ein Service keine Account s hat.

Verwandte Themen