MySQL Baum: Blatt an mehreren Zweigen

flaschenkind

Well-known member
ID: 118459
L
20 April 2006
4.507
337
Ich brauche gerade mal eine kleine Anregung von euch.

Ich will eine Art Baum haben. Das Problem ist nur, dass es eigentlich kein richtiger Baum ist :ugly:
Wie man im Titel schon sehen kann, soll ein Blatt an mehreren Ästen hängen und ich bin mir grade ziemlich unschlüssig, wie ich das am besten lösen soll.
Zur Verdeutlichung hab ich hier nochmal ein Diagramm erstellt: https://www.imgu.de/img_53442_pup

Macht es da Sinn, diesen Weg weiter zu verfolgen oder sollte ich lieber zwei Tabellen erstellen, wo die erste Tabelle alle möglichen Zweige enthält und eine zweite Tabelle die Zuordnungen festlegt? Ich fände da einen Baum nur deutlich eleganter :-?
 
So wie ich das sehe hast Du eine n:m - Beziehung.

Ein Element kann zu mehreren Kategorien gehören und
eine Kategorie kann mehrere Elemente haben.

Also brauchst Du im Prinzip drei Tabellen
eine für die Kategorien,
eine für die Elemente und
eine für die Zuordung Element <-> Kategorie.
 
Okay, danke. Ich war wohl zu sehr auf nen Baum und Nested Sets fixiert un fand so eine Lösung nicht so schön. Aber wenn ihr da anderer Meinung seid, werde ich das wohl auch so machen.
 
Hm allgemeine graphen sind vielleicht nicht so schoen fuer die Sache, was wuerdest du dazu sagen den Baum ganz normal zu bauen und in den Blaettern einen Pointer (oder eben Foreign Key) zu den eigentlichen Elementen, also so:



Vorteile:
  • Simple Baumstruktur
  • Man kann Elemente auch an innere Knoten im Baum haengen
  • Viele Baumalgorithmen moeglich
Nachteile:
Die Elemente werden nicht mehr im Baum selber gespeichert und man muss die Queries umschreiben und einen Join ueber Elemente machen, sollte man bei nicht-trivialen Elementen eh machen :evil:

HTH