Datenbankrelationen Objektorrientiert abbilden

Kriskra

Mitglied
Hallo Leute,

Ich hätte eine Frage. Und zwar habe ich ein Framework mit Managern aufgebaut (Klassenbassiert). D.h. das es zu jedem "Einsatzgebiet" einen Manager (Eine Klasse) gibt. Beispielsweise gibt es eine Managerklasse "User_Manager", der alle Benutzersachen regelt (Benutzer erstellen, Benutzer bearbeiten, Benutzer löschen, etc.) und eine Managerklasse "Appointment_Manager" (Termin anlegen, Termin barbeiten, Termin konflikte ermitteln, etc.). Soweit, sogut.

Nun muss ich ja eine Relation zwischen den Benutzern und den Terminen herstellen. Ein Benutzer kann mehre Termine haben. Ein Termin können mehrere Benutzer haben. Also eine klassische n:m Verbindung. Auf der Datenbank eine ganz klare Sache, 3 Tabellen, User, Appointments und die Relationstabelle, jedoch wie stelle ich das ganze jetzt am besten Objektorientiert dar?

Mir sind bisher zwei möglichkeiten eingefallen die mich jedoch nicht so überzeugt haben. In der User klasse ist immer eine Liste mit allen Terminen des Users, dazu biete ich dann Add, Get und Delete Methoden. Oder ich mache eine 3. Klasse die sich um die Relationen kümmert.

Was meint ihr, wie könnte ich das abbilden? Bin über jede Anregung dankbar.

Viele Grüße,
Kriskra
 
Hi,

Also ich würde deine erste Lösung bevorzugen.
Jeder User kennt seine Termine. So brauchst du für jeden User nur eine Referenz auf seine Termine speichern. Das würde den Verwaltungsaufwand aus meiner Sicht reduzieren.
 
Hi,

Danke für die rasche Antwort.

Hmm, nuja ich habe das ganze auch nochmal Überdacht und denke ich werde mich (Falls es keine besseren Ideen gibt) für die erste Methode entscheiden.

Jetzt gibt es natürlich wieder zwei Möglichkeiten:
1. Im User_Manager immer eine liste mit allen Appointments des Users bereithalten.
Wobei es hier wieder zwei Möglichkeiten gibt:
1. Liste mit den Indizes der Appointments.
2. Liste mit Appointment_Managern aller Termine.
2. Im Appointment_Manager Get_App(User_Manager user, Integer AppIndex), Add_App(User_Manager user) und Delete_App(User_Manager user, AppIndex) Methoden bieten...

Was meint ihr? Was wäre die beste Methode, oder würdet ihr es ganz anders gestalten?

Danke und Viele Grüße,
KK
 
Zurück