Andreas Korthaus: Daten in flexibler Baumstruktur für schnelle Zugriffe speichern

Beitrag lesen

Hi!

hab leider nicht viel zeit es genauer zu erläutern, aber vieleicht solltest du dir 'nested sets' mal anschauen (habe so schon wirklich komplexe navigationsstrukturen abgebildet). ist aber nur zu gebrauchen, wenn du die struktur nicht oft ändern mußt.

http://klempert.de/php/nested_sets/literatur/

Vielen Dank, sehr interessanter Link. Hatte davon zwar schonmal gehört, aber habe mich nie näher mit beschäftigt. Wirklich eine interessante Alternative! Prinzipiell müsste das auch mit einem Array gehen... hm. Wie ich das sehe, kann man hier jedenfalls wenigstens theoretisch Elemente verschieben.

(ich "klau" mir mal eben ein Bild...)

<img src="http://ffm.junetz.de/members/reeg/DSP/img10.png" border="0" alt="">

Hierzu müsste man dann allerdings einen großen Teil des Baumes, das heißt je nach Ebene möglicherweise so ziemlich jeden Datensatz verändern.

Auf der anderen Seite ist diese Variante vermutlich mit die effizienteste wenn man die Daten liest, denn bei allen anderen Varianten muss ich die Reihenfolge in irgendeiner Form extra abspeichern, und dann nachträglich sortieren...

Also wenn ich diese Datan mal mit der "Vater-ID" Variante organisiere:

ID  Name  Vater-ID
1  Root  0
2  A  1
3  B  1
4  C  1
5  A1  2
6  B1  3
7  B2  3
8  C1  4
9  A1I  5
10  C1I  8
11  C1II  8

Müsste ich hier ja nur ein weiteres Feld einfügen, "Reihenfolge" oder sowas, welches die Sortierreihenfolge für die eine Ebene festlegt. Das heißt, wenn ich anstatt

root

/   |   \

A     B     C

sowas möchte:

root

/   |   \

B     A     C

ID  Name  Vater-ID   Reihenfolge
1  Root  0          1
2  A  1          2
3  B  1          1
4  C  1          3
...

Man stelle sich vor welchen Aufwand dies für "Nested Sets" oben bedeutet, in diesem Fall müsste ich 6 von 11 Elementen verändern. Aber das hast Du ja auch geschrieben ;-)

Um irgendwas in der Art komme ich dann wohl nicht herum, oder?

Viele Grüße
Andreas