Ich renne in diese Wand in Bezug auf bidirektionale Beziehungen.Wie kann ich bidirektionale Beziehungen in einem Familienstammbaum in Neo4j mindern?
Angenommen, ich versuche ein Diagramm zu erstellen, das einen Familienstammbaum darstellt. Das Problem ist hier:
* Timmy kann Suzies Bruder sein, aber
* Suzie kann nicht Timmys Bruder sein.
Somit wird es notwendig, diese in zwei Richtungen zu modellieren:
(Sicher, technisch konnte ich SIBLING_TO sagen und nur eine Kante verlassen ... was ich bin mir nicht sicher, was das Vokabular ist, wenn ich versuche, eine Oma mit einem Enkel zu verbinden.)
Wenn alles gesagt und getan ist, bin ich ziemlich sicher, es gibt keinen Weg um die Tatsache, dass die Richtung in diesem Beispiel zählt.
Ich las diese blog post, in Bezug auf gemeinsame Neo4j Fehler. Der Autor stellt fest, dass diese Bidirektionalität nicht der effizienteste Weg zum Modellieren von Daten in Neo4j ist und vermieden werden sollte.
Und ich fange an zuzustimmen. Ich habe ein Mock Set mit 2 Familien eingerichtet:
und ich fand, dass viele Abfragen, die ich ausführen wollte, sehr, sehr langsam verliefen. Dies liegt an der "Alles verbunden mit allen" Natur des Graphen, zumindest innerhalb der jeweiligen Familie.
Meine Frage ist diese:
1) Bin ich richtig zu sagen, dass Bidirektionalität nicht ideal ist?
2) Wenn ja, ist mein Beispiel eines Familienstammbaums auf andere Weise darstellbar ... und was ist die 'Best Practice' in den vielen Situationen, in denen mein Problem auftreten kann?
3) Wenn es nicht möglich ist, den Familienstammbaum auf eine andere Art und Weise darzustellen, ist es technisch möglich, auf eine Art und Weise Abfragen zu schreiben, die das Problem von 1) umgehen?
Vielen Dank für das Lesen und für Ihre Gedanken.
bidirektionale Verbindungen von der gleichen Kante Namen sind redundant und fügen Sie nicht Wert . Bruder und Schwester - um Informationen zu vermitteln, obwohl das aus einer Immobilie abgeleitet werden könnte. Eine (Kind) - [: PARENT] -> (Eltern) -Beziehung bringt Ihnen die Eltern-Kind-Beziehung und bringt Ihnen die gesamte biologische Familienbeziehung, und Sie können sie für jede Generation von Eltern/Kindern verwenden. Stiefkinder wären eine andere Sache. –