@Namenloser
Danke für die Hilfe.
Ich werde aber doch erst mal eine Liste benutzen, da ich dort auch weiß, was wann wie passiert.
Wen ich es brauche und mir zutraue, schaue ich mir dann mal Deinen Baum an. Die benötigten Funktionen wären dann ja gleich/ähnlich, nur die innere Funktionalität würde dann ja anders ablaufen.
@Deja Vu
Ich habe diverse Interfaces, auf die ich auf unterschiedliche Weisen zugreife. Der Datenzugriff soll immer über Objekte erfolgen.
Ein ORM ist geplant, aber eine Datenbank soll dann auch nur über den ORM angesprochen werden. Der User soll davon letztlich nichts merken.
Kleinere Datenmengen sollen aber nur in Objekten verwaltet werden.
Deine Vorschläge 1-3 sehe ich auch so. Nur, statt Indizes in einer Liste zu sammeln, kann ich auch direkt die Pointer sammeln, sofern alle Objekte persistent im Speicher liegen.
Die gleiche Funktion unter Benutzung eines ORM müsste die Objekt-GUIDs heraus geben, da die Objekte dann anhand der
GUID instanziiert werden.
Das Löschen und Einfügen von Objekten in der Hauptliste wird unproblematisch zu berücksichtigen sein. Ich muss dann halt in den angehängten Sortierlisten die Änderungen nachführen. Kein Problem.
Aber wenn ein Vor- oder Nachname eines Personenobjektes geändert wird, dann wird es schon deutlich schwieriger.
Eine Liste kann sich ja schlecht bei 1Mio Objekten als Überwacher anmelden. Dann müssten sich letztlich auch mehrere Listen bei jedem Objekt registrieren können. Ich werde wohl eine zentrale Stelle schaffen, in der sich Listen anmelden können und über Objektänderungen informiert werden. Dann können sie prüfen, ob eins ihrer Einträge von einer Änderung betroffen ist.