Der Wert des Resturlaubs ist ein Wert, der sich aus den anderen Werten ermitteln lässt. Daher ist die Speicherung erst einmal redundant.
Und typische Probleme sind dann, dass Veränderungen an einem Datensatz alleine dann inkonsistente Zustände herbei führen. Ich lösche einfach einen Datensatz heraus. Du hast also Datensätze wie:
- 5 tage Urlaub im Januar, Resturlaub 25 Tage
- 3 Tage Urlaub im Februar, Resturlaub 22 Tage
- 5 Tage Urlaub im März, Resturlaub 17 Tage
Ups, den Urlaub im Februar hatte ich ja gar nicht genommen! Da war doch dieses riesen Kundenproblem und ich habe die 3 Tage gearbeitet ... dann löschen wir den Datensatz und erhalten dann:
- 5 tage Urlaub im Januar, Resturlaub 25 Tage
- 5 Tage Urlaub im März, Resturlaub 17 Tage
Nur ein einfaches Beispiel. Ich wäre daher relativ offen was die Datenspeicherung angeht. Und ich würde da auf jeden Fall darauf achten, dass Korrekturen einfach sind (die kommen nun einmal vor ist meine Erfahrung! Fehleingaben, nicht zeitig erfolgte Änderungen u.s.w.)
Das geht dennoch alles. Dann gibt es halt Routinen, die alles prüfen. Oder bei einer Anpassung wird auch deutlich mehr geändert. Das erhöht aber vermutlich die Komplexität - und das auf Grund einer solchen Datenstruktur.
Aber wir hatten das Thema ja schon meine Ich. Gewisse Redundanzen machen durchaus Sinn um eben die Berechnung zu vereinfachen. Man will nicht die letzten 30 Jahres des Mitarbeiters durchgehen, wenn es um den Urlaub geht. Zumal da ja auch Urlaub verfällt und so.
Daher bin ich durchaus der Meinung, dass man da am Jahresende / Jahresanfang entsprechende Buchungen haben kann.
Und dann wird immer nur das Jahr betrachtet. Änderungen am Vorjahr sind evtl. auch nicht mehr möglich. (So ist es bei uns - Zeitbuchungen sind immer nur im aktuellen Monat möglich. Am Anfang des nächsten Monats wird der Vormonat geschlossen und ein Monatsabschluss findet statt. Nachträgliche Änderungen gehen dann nur noch mit zusätzlichen Aufwänden (weil dann ggf. auch Berichte angepasst werden müssen - also Dinge, die gar nichts mit der Zeiterfassung zu tun haben!) Aber das muss man dann immer ganz klar so sehen.
Das ist aber einfach nur meine Sicht. Hier ist generell auch eine andere Sicht möglich. Die können auch besser sein - weil es evtl. Anforderungen gibt, die ich schlicht nicht kenne und daher natürlich auch nicht berücksichtige.
Daher ganz klar: Das was Du da machen willst, ist so bestimmt möglich. Aber denk an die Probleme, die durch so eine Redundanz auftreten können!