MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

Speichern der Verzeichnishierarchie in einem Schlüsselwert-Datenspeicher

Die Methode, die Sie derzeit verwenden, heißt Adjazenzlistenmodell.

Ein weiteres Modell, um hierarchische Daten in einer (relationalen) Datenbank zu speichern, ist das Nested-Set-Modell. Seine Implementierung in SQL-Datenbanken ist allgemein bekannt. Siehe auch diesen Artikel für den modifizierten Preorder Tree Traversal Algorithmus.

Eine sehr einfache Methode:Sie könnten einen Pfad pro Objekt speichern - damit sollte es einfach sein, Bäume in NOSQL-Datenbanken abzufragen:

{ path: "Color", ... }
{ path: "Color.Red", ... }
{ path: "Color.Red.Apple", ... }
{ path: "Color.Red.Cherry", ... }

Wenn Knoten entfernt oder umbenannt werden, müssen einige Pfade aktualisiert werden. Aber im Allgemeinen sieht diese Methode vielversprechend aus. Sie müssen lediglich ein Sonderzeichen als Trennzeichen reservieren. Der Speicherplatz-Overhead sollte vernachlässigbar sein.

Bearbeiten:Diese Methode wird materialisierter Pfad genannt

Abschließend noch ein Vergleich verschiedener Methoden für hierarchische Daten in NOSQL-Datenbanken.