Hallo zusammen!
An diesem Problem beisse ich mir nun schon seit Tagen die Zähne aus:
Ich habe eine Tabelle (ProjectMembers), die folgende Spalten enthält:
-BenutzerID
-ProjektID
-Verrechnungssatz
BenutzerID und ProjektID sind verlinkt mit entsprechenden ID-Feldern in einer Benutzertabelle und einer Projekttabelle (m:n - Beziehung)
Die Spalte Verrechnungssatz gibt an, mit welchem Verrechnungssatz ein Benutzer X im Projekt Y abgerechnet werden soll.
Nun sollen die Verrechnungsätze zeitlich versioniert werden.
Meine Idee: die Tabelle ProjectMembers erhält ein zusätzliches Datumsfeld 'GültigSeit'
Für Abrechungsvorgänge wäre diese Tabelle aber so nicht zu gebrauchen. Bislang hätte es gereicht auf eine ProjektID zu filtern um alle Verrechnungssätze für die Projektbeteiligten zu ermitteln. In Zukunft soll zusätzlich auf ein Datum gefiltert werden können.
Also: Welcher Verrechnungssatz waren im Projekt X am Datum Y für den Benutzer Z gültig.
Hierzu wäre es notwendig die um 'GültigSeit' erweiterte Tabelle wie folgt zu transformieren:
-BenutzerID
-ProjektID
-Verrechnungssatz
-DatumSeit
-DatumBis
Gibt es kein Folgedatum für eine User/ProjeltID Kombination, so kann DatumBis meinetwegen NULL werden. Oder einen Wert irgendwann in der Zukunft annehmen.
Wenn es gelingt die Ausgangstabelle entsprechend zu transformieren, so könnten nachfolgende Abfragen auf diese Tabelle einfach mit der 'BETWEEN'-Anweisung arbeiten.
Aber wie sieht so eine Transformation aus?
An diesem Problem beisse ich mir nun schon seit Tagen die Zähne aus:
Ich habe eine Tabelle (ProjectMembers), die folgende Spalten enthält:
-BenutzerID
-ProjektID
-Verrechnungssatz
BenutzerID und ProjektID sind verlinkt mit entsprechenden ID-Feldern in einer Benutzertabelle und einer Projekttabelle (m:n - Beziehung)
Die Spalte Verrechnungssatz gibt an, mit welchem Verrechnungssatz ein Benutzer X im Projekt Y abgerechnet werden soll.
Nun sollen die Verrechnungsätze zeitlich versioniert werden.
Meine Idee: die Tabelle ProjectMembers erhält ein zusätzliches Datumsfeld 'GültigSeit'
Für Abrechungsvorgänge wäre diese Tabelle aber so nicht zu gebrauchen. Bislang hätte es gereicht auf eine ProjektID zu filtern um alle Verrechnungssätze für die Projektbeteiligten zu ermitteln. In Zukunft soll zusätzlich auf ein Datum gefiltert werden können.
Also: Welcher Verrechnungssatz waren im Projekt X am Datum Y für den Benutzer Z gültig.
Hierzu wäre es notwendig die um 'GültigSeit' erweiterte Tabelle wie folgt zu transformieren:
-BenutzerID
-ProjektID
-Verrechnungssatz
-DatumSeit
-DatumBis
Gibt es kein Folgedatum für eine User/ProjeltID Kombination, so kann DatumBis meinetwegen NULL werden. Oder einen Wert irgendwann in der Zukunft annehmen.
Wenn es gelingt die Ausgangstabelle entsprechend zu transformieren, so könnten nachfolgende Abfragen auf diese Tabelle einfach mit der 'BETWEEN'-Anweisung arbeiten.
Aber wie sieht so eine Transformation aus?