ich habe wieder mal eine Designfrage. Es geht mir dabei nicht um die Umsetzung in Code.
Bei der Umstellung eines bestehenden Projekts möchte ich gern meine starre Struktur dynamisch anpassbar machen. Im kongreten Fall möchte ich ein Leistungsverzeichnis aus bestehenden Einzelpositionen zusammenklicken können. Bisher habe ich eine starre Stuktur in der Datenbank: Gewerk -> Teilgewerk -> Position. Neu möchte ich, dass folgende Konstellationen möglich sind:
Code: Alles auswählen
- Position a -> Pos 1 im LV
- Position b -> Pos 2 im LV
- Gewerk a - Position a -> Pos 3 im LV
- Gewerk b - TeilGewerk a - Position a -> Pos 4 im LV
└-------- Position c -> Pos 5 im LV
- Gewerk e - TeilGewerk a - TeilGewerk d - Position x -> Pos 6 im LV
└-------- Position y -> Pos 7 im LV
└-------- Position z -> Pos 8 im LV
Unklar ist mir nun, wie ich diese Struktur am besten in der Datenbank speichere. Bis jetzt kam mir nur in den Sinn, immer den Parent einer Node mit zu speichern und alle Nodes in eine Tabelle zu werfen. Das hat aber den Nachteil, dass ich zur Laufzeit die Tabelle einmal komplett laden muss und daraus die Baumstruktur generieren muss. Bei einem ersten Test mit PostgreSQL, Zeos und VirtualStringTree hat das auch funktioniert, allerdings habe ich das Gefühl, dass man das auch eleganter lösen könnte.
Wie könnte man eine derartige Struktur in einer Datenbank speichern, ohne beim Start den kompletten Datensatz laden und bei Veränderung den kompletten Datensatz speichern zu müssen.
Vielen Dank für hilfreiche Denkanstöße