[MySQL 4.0] Baum traversieren

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • [MySQL 4.0] Baum traversieren

    Ich habe hier ein Problem mit der Realisierung von Bäumen in MySQL, die schnell abgefragt werden können. Es handelt sich dabei um eine Termindatenbank bestehend aus mehrere Tabellen, unter anderem
    - baum
    - termine

    BAUM:
    - element_nr
    - name
    - vater_nr

    TERMINE:
    - termin_nr
    - anlass
    - option1
    - option2
    ... etc

    Der Baum kann bis zu 6 Elementen tief sein und in jedem Element sind Termine möglich. z.B. Organisation => Filiale => Subabteilung 1 => Subabteilung 2 => ...

    Nun möchte ich eine Abfrage machen, die z.B. lautet:
    Ich will alle Termine ab Filiale X (element_nr = 3) und deren Subabteilungen.

    Mein Lösungsansatz:
    zuerst alle element_nr der subabteilung mit einer in php rekursiven funktion abfragen und dieses für die hauptquery verwenden.

    SELECT [feldnr] FROM baum, termine WHERE (element_nr = 2 OR element_nr = 45 OR element_nr = 234 OR ....) AND option1 = "ab" etc... AND baum.element_nr = termine.element_nr ORDER BY ...

    Dies ist leider nicht gerade eine sehr schnelle query (wie sich nach EXPLAIN SELECT ... herausgestellt hat). Gibt es eine bessere Möglichkeit, oder scheitert man daran, dass Subquerys noch nicht möglich sind?

  • #2
    schau mal hier:

    http://www.php-resource.de/forum/sho...threadid=23912

    die da vorgestellte menüstruktur sollte das gewünschte leisten, wenn nicht, hier noch ein link zu nem tutorial zu "nested sets"
    Zuletzt geändert von mrhappiness; 19.09.2003, 21:38.
    Ich denke, also bin ich. - Einige sind trotzdem...

    Kommentar


    • #3
      Danke für die Links, das mit den 'nested Sets' tönt noch interessant. Werde mirs zu Gemüte führen. Habe in einem anderen Forum interessante Lösungsansätze erhalten:

      http://cgi.ethz.ch/~tillk/cgi-bin/wb...=&postid=39232

      Kommentar

      Lädt...
      X