Frage

Gibt es eine Open-Source-hierarchische Datenbank oder Emulation oben auf der bestehenden RDBMS?

Ich suche ein DMBS (oder Plugin zu bestehenden RDBMS), die hierarchischen Daten und Genehmigungen speichern kann Abfragen auf hierarchische Daten (so etwas wie „SELECT LEVEL ... CONNECT BY ...“, „SELECT PARENT auszuführen ... " zum Beispiel). Ich weiß, es ist eine gewisse Unterstützung in Oracle, aber gibt es eine komplexere Lösung?

War es hilfreich?

Lösung

Es gibt keine standardisierte Plugin, dies zu tun. Ich habe mehr als einmal sieht. Allerdings gibt es eine Reihe von Optionen. Siehe aus meiner früheren Frage zum gleichen Thema:

Was sind die Optionen für hierarchische Daten in einer relationalen Datenbank gespeichert werden?

Kurz gesagt, wenn Sie eine Tabelle mit ID und ParentID (auch bekannt als Adjazenzliste) unter Verwendung verwenden Sie Common Table Expressions mit den meisten Datenbanken (Oracle CONNECT BY eine der bemerkenswertesten Ausnahmen sind). OTO, so etwas wie materialisierte Pfad oder verschachtelte Sätze kann eine bessere Passform für Ihre Situation sein - zum Beispiel die Fähigkeit, leicht zu finden „Linie“, wo mit dieser Adjazenzliste eine teure Operation ist.

In der Regel, was mit einem System am Ende passiert, dass Anforderungen an der Arbeit intensiv mit hierarchischen Daten, zum Beispiel eines CMS, sind, dass es Geräte mehr als eine dieser Lösungen. Die Annahme ist, liest stark überwiegen schreibt.

Andere Tipps

nicht relationale Daten nicht direkt Hierarchien in der Art und Weise unterstützen, dass eine von Natur aus hierarchischer Struktur wie XML tut. Sie haben ein Datenmodell wie verschachtelte Sätze verwenden oder eine gerade selbst treten die Hierarchie zu modellieren.

Je nach Art von System, das Sie haben, Common Table Expressions lassen Sie hierarchische Abfragen auf Daten ausgeführt werden. CTEs werden seit 2005 von SQL Server-Versionen unterstützt, Neuere Versionen von DB / 2 und PostgreSQL - und wahrscheinlich auch einige andere Systeme. CTEs sind etwas fummelig als CONNECT BY, aber sie auf einer fairen Vielzahl von platorms ausgeführt werden.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top