Hallo zusammen,
ich bin gerade daran einen Prototypen für ein Frontend in unserer Applikation zu bauen. Das zugrundeliegende Datenmodell ist aber noch alt. Das ist so ein vertikales Modell, ganz schrecklich, also die Spalten
GUID
Version
Feldindex
Wert
Da muss man um einen logischen Datensatz zu laden also ein riesiges Join-Fass aufmachen um daraus dann einen horizontalen Datensatz zu bekommen.
Später werden die Daten in ordentliche horizontale Oracle-Tabellen migriert, aber eben jetzt noch nicht. Der Wunsch ist, dass der Prototyp aber mit Live-Daten umgeht. Wenigstens muss er nur lesen und nicht schreiben können, da hab ich ein zu dickes Preisschild dran geklebt.
Jetzt würde ich gerne das Datenmodell so weit abstrahieren, dass ich nachher im Hintergrund nur eine Klasse austauschen muss und dann wird das neue Datenmodell verwendet.
Also meine Idee war
Die Datenbankverbindungen sind alle im Server als Datasource hinterlegt und wir verwenden Eclipselink.
Ich hatte halt gehofft, dass ich die immense Menge an diesen Join-Abfragen umgehen könnte.
ich bin gerade daran einen Prototypen für ein Frontend in unserer Applikation zu bauen. Das zugrundeliegende Datenmodell ist aber noch alt. Das ist so ein vertikales Modell, ganz schrecklich, also die Spalten
GUID
Version
Feldindex
Wert
Da muss man um einen logischen Datensatz zu laden also ein riesiges Join-Fass aufmachen um daraus dann einen horizontalen Datensatz zu bekommen.
Später werden die Daten in ordentliche horizontale Oracle-Tabellen migriert, aber eben jetzt noch nicht. Der Wunsch ist, dass der Prototyp aber mit Live-Daten umgeht. Wenigstens muss er nur lesen und nicht schreiben können, da hab ich ein zu dickes Preisschild dran geklebt.
Jetzt würde ich gerne das Datenmodell so weit abstrahieren, dass ich nachher im Hintergrund nur eine Klasse austauschen muss und dann wird das neue Datenmodell verwendet.
Also meine Idee war
- Frontend Handler, der alle Daten zur Präsentation hält
- Operations Interface, um mir die Funktionen wie getAll, getByID, getByOrderNo und Co dar zu stellen
- Datenbankverbindungs Layer, hier mache ich die Abfrage mit den ganzen Joins und liefere dann eine Liste mit Objekten oder nach Anwendungsfall ein Objekt zurück
Die Datenbankverbindungen sind alle im Server als Datasource hinterlegt und wir verwenden Eclipselink.
Ich hatte halt gehofft, dass ich die immense Menge an diesen Join-Abfragen umgehen könnte.