Arne Buchwald
Erfahrenes Mitglied
Hallo,
ich habe gestern von Matthias (rm) den folgenden Link http://www.sitepoint.com/print/hierarchical-data-database bekommen und habe mir das ganze eben soweit durchgelesen.
Das MPTT-Model macht auf den ersten Blick einen fantastischen Eindruck, jedoch habe ich zwei Bedenken, die das Modell für meinen Anwendungszweck leider unbrauchbar machen könnten.
1) Im Modell wird angesprochen, wie leicht es ist, vom Ende (im dortigen Beispiel: eine Frucht) den Pfad zum root-node zu erhalten. In meinem Einsatzzweck benötige ich jedoch eine Möglichkeit, über einen weiteren Join die Anzahl aller Datensätze zu ermitteln, die unterhalb eines beliebigen Nodes liegen.
2) Einfüge/Lösch-Anomalien
Auch wenn der Begriff aus der Normalisierung kommt und nicht exakt passt, gehen meine Bedenken trotzdem in diese Richtung. In meiner Anwendung habe ich große Datenmengen, wobei diese immer mit einem Node aus der hierarchischen Anordnung verknüpft sind. Wenn jetzt irgendwo ein Node gelöscht oder eingefügt wird, müssen alle Verknüpfungstabellen geupdatet werden, das nicht unerheblich Last erzeugt. Je nachdem, wo eine Änderung in der hierarchischen Anordnung stattfindet, kann dieses nach dem Modell auch die ganze Datenbank betreffen.
Wie seht ihr dieses Modell? Teilt ihr meine Bedenken oder kennt ihr eine bessere Möglichkeit?
Ich hatte in anderne Scripten gesehen, dass folgende Konstruktion zum Einsatz kommt:
und dann eine Abfrage von Node X bis zum Endnote mit einem SQL-Statement
durchgeführt wird. Leider wird "IN (parentlist)" bei mir dann wohl als String behandelt, so dass keine Abfrage "Ist 2 ein Element in der Parentlist" durchgeführt wird.
ich habe gestern von Matthias (rm) den folgenden Link http://www.sitepoint.com/print/hierarchical-data-database bekommen und habe mir das ganze eben soweit durchgelesen.
Das MPTT-Model macht auf den ersten Blick einen fantastischen Eindruck, jedoch habe ich zwei Bedenken, die das Modell für meinen Anwendungszweck leider unbrauchbar machen könnten.
1) Im Modell wird angesprochen, wie leicht es ist, vom Ende (im dortigen Beispiel: eine Frucht) den Pfad zum root-node zu erhalten. In meinem Einsatzzweck benötige ich jedoch eine Möglichkeit, über einen weiteren Join die Anzahl aller Datensätze zu ermitteln, die unterhalb eines beliebigen Nodes liegen.
2) Einfüge/Lösch-Anomalien
Auch wenn der Begriff aus der Normalisierung kommt und nicht exakt passt, gehen meine Bedenken trotzdem in diese Richtung. In meiner Anwendung habe ich große Datenmengen, wobei diese immer mit einem Node aus der hierarchischen Anordnung verknüpft sind. Wenn jetzt irgendwo ein Node gelöscht oder eingefügt wird, müssen alle Verknüpfungstabellen geupdatet werden, das nicht unerheblich Last erzeugt. Je nachdem, wo eine Änderung in der hierarchischen Anordnung stattfindet, kann dieses nach dem Modell auch die ganze Datenbank betreffen.
Wie seht ihr dieses Modell? Teilt ihr meine Bedenken oder kennt ihr eine bessere Möglichkeit?
Ich hatte in anderne Scripten gesehen, dass folgende Konstruktion zum Einsatz kommt:
Code:
ResellerID, parentID, parentList, title
----------------------------------------------------------
1 , , , Admin
2 , 1 , 1 , Reseller 1
3 , 1 , 1 , Reseller 2
4 , 2 , (1,2) , Reseller 1 des Resellers 1
5 , 4 , (1,2,4) , Reseller 1 (No. 5) des Reseller 1 (No. 4) des Resellers 1 (No. 2)
Code:
WHERE 2 IN (parentList)