Ich habe die folgende Datenstruktur in RethinkDB Tabelle gespeichert:tritt in rethinkdb
{
id: string,
parentId: string,
timestamp: number,
data: Object
}
Diese Datenstruktur einen Baum bildet, kann es die folgende Abbildung (weiß Aufzeichnungen gewöhnliche Daten repräsentieren tragen Aufzeichnungen dargestellt werden unter Verwendung der roten diejenigen, haben ihre data
Eigenschaft gleich null
die Operation darstellt löschen):
für jeden Datensatz nun in der Tabelle zu berechnen, ich möchte in der Lage sein, die nextRecord
. Welches ist der nächste Rekord in der Zeit zu dem aktuellen. Die Aufgabe scheint einfach, wenn nur ein Datensatz ist darauf zurück zu einem Elternteil:
1 => 2
4 => 9
5 => 6
6 => 8
...
Aber es wird immer schwieriger, einen solchen Wert zu berechnen, wenn übergeordneten Datensatz wird von mehreren untergeordneten Datensätze verwiesen wird:
2 => 3
3 => 5
7 => 11
Dies ist auch der Fall, wenn keine untergeordnete Referenz vorhanden ist. In diesem Fall sollte das Ergebnis null
lauten (zum Beispiel enthält Datensatz Nr. 8 keine untergeordneten Datensätze und daher sollte null
zurückgegeben werden).
Also frage ich nicht, die Abfrage selbst zu schreiben (was auf der anderen Seite wäre wirklich toll für mich), aber zeigen Sie zumindest die Richtung, in der ich eine Lösung für dieses Problem finden kann.
Vielen Dank im Voraus!