Hallo Well,
ich kann mich erinnern, dass wir das im Forum mal diskutiert hatten, finde die Stelle leider nicht mehr.
Da Beziehungen über verschiedene Datenbanken vom GORM ja noch nicht unterstützt werden, kann das ganze so auch nicht umgesetzt werden?! Wie könnte man soetwas dann umsetzen?
Die klassische Lösung ist, die Applikation mehrschichtig aufzubauen. Das bedeutet, dass du eine Kern-Komponente "Benutzer-Verwaltung" vorsiehst, die dir Informationen zum Benutzer zur Verfügung stellt, Login durchführen kann, etc. Diese - bzw. die Informationen des Nutzers - nutzt du dann in anderen Applikationen um z.B. Threads eines Benutzers auszulesen oder seine Detail-Seite im Forum anzuzeigen. Prämisse dabei ist, dass du - sofern du mit dem GORM arbeitest - in den konkreten Applikationen mit Stellvertreter-Objekten arbeitest. Das bedeutet, das du ein User-Objekt in deiner Foren-Anwendung modellierst, das jedoch nur aus einer Stellvertreter-ID (=der eigentlichen User-ID) besteht. Diese assoziierst du dann zum gewünschten Objekt und hast so die Möglichkeit, Applikationen in beliebige Datenbanken zu trennen.
Dann noch eine andere Sache: Angenommen, man würde nun alles in eine Datenbank verlegen. Wie schaffe ich dann eine Beziehung zwischen einer Tabelle des Usermanagement-Modules und der eigenen Seite?
Wie angesprochen, würde ich hier ein Stellvertreter-Objekt definieren, das lediglich das Mapping zwischen eigentlichem User-Objekt und den Applikations-Daten repräsentiert.
Wenn man in die Beziehungs-Konfigurationsdatei der eigenen Seite die Beziehung schreibt, fehlt an der Stelle ja die entsprechende Tabelle in der Objekt-Konfigurationsdatei, da diese ja nur in der, des Usermanagement-Moduls existert. Wie löst man das dann?
Hierzu kannst du die Konfiguration des UmgtManager / bzw. des GORM erweitern und die gewünschte zusätzliche Konfiguration einfach hinzuladen. Das stellt sich in der Praxis dann so dar, dass du in deiner Applikation eine Basis-Konfiguration einliest (z.B. die des UserManagement) und dann per
addMappingConfiguration() oder
addRelationConfiguration() weitere Konfigurationen der konkreten Applikation hinzulädst. Sofern du auf Stellvertreter-Objekte setzt, ist das quasi nicht mehr nötig.
Unter
GenericORMapper kannst du die ursprüngliche Diskussion dazu einsehen. Im Thread
GORM-Applikation für zentrale Datenhaltung findet sich noch einiges zu den Überlegungen einer zentralen Datenhaltung.
Ich hoffe, das hilft dir weiter.