Eine Beziehung einen Fall von, sagen wir, „Freunde“ auf einer Social-Networking-Plattform in der Regel als modelliert werden würde beteiligt: Soll ich in diesem Fall eine einzelne Beziehung oder zwei Beziehungen verwenden?
(x:User)-[:FRIEND]->(y:User)
, die dann als abgerufen wird:
MATCH (x:User)-[:FRIEND]-(y:User) RETURN x, y
Nun lassen Sie uns sagen, für eine bestimmte x
und y
: obwohl sie Freunde sind, vertraut y
nicht wirklich x
; x
fühlt sich nicht so über y
obwohl.
also aus der Perspektive der y
, tatsächlich das Datenmodell ist:
(y)-[:FRIEND {untrusted: true}]->(x)
jedoch aus der Sicht der x
, das ist nicht, wie die Dinge aussehen:
(x)-[:FRIEND]->(y)
So etwas so wäre das zum Erstellen der Beziehung eindeutig ungeeignet:
MATCH (x:User {...}), (y:User {...}) MERGE (x)-[f:FRIEND]->(y) SET f.untrusted = true
... denn jetzt, die Dinge am Ende so aussehen aus der Perspektive der beiden Benutzer:
(x:User {...})-[:FRIEND {untrusted: true}]->(y:User)
(x:User {...})<-[:FRIEND {untrusted: true}]-(y:User)
Die allgemeine Beratung ist in der Regel auf zwei diskrete Beziehungen in den meisten Fällen zu verhindern, aber wie soll ich gehen über diesen Fall einer Beziehung modellieren?