Die Sache mit dem GROUP BY ist mir bewusst. Das geht wirklich nur in MySQL. Es steht sogar im Handbuch von MySQL, das es nur dort geht. Die machen das Absichtlich und auch erst ab 4.1.
Normalisiert ist die DB schon. Allerdings schreibe ich für die Suche noch zusätzlich den vollständigen Pfad in ein Feld um mir die Rückwärtsrechnerei in MySQL oft zu sparen:
Beispiel:
Code:
ident | zuident | kurz | name | intebene | intreihenfolge | reihenfolge | fullshort | fulllang
1 | 0 | tf | taktfoll | 1 | 1 | 1 | tf | taktfoll
2 | 1 | gs | gesang | 2 | 2 | 1 | tf / gs | taktfoll / gesang
3 | 1 | dr | drum | 2 | 3 | 2 | tf / dr | taktfoll / drum
Das einzige ist nur, bei Änderungen in einer Kategorie müssen alle Hilfsfelder einmal neu geschreieben werden. Aber wie gesagt, es nimmt hinterher viel arbeit ab und auch viel Rechenleitung von MySQL.