Seite 1 von 1

Datenbankmodellierung - Archivierung

BeitragVerfasst: Mi 28. Mai 2014, 14:20
von Lix
Hallo Leute hier im Forum,

Ich habe ein grundlegendes Problem bei der Datenmodellierung. Ich bin selbst noch nicht so im Thema drin und frage mich deshalb ob es bezüglich der Problemstellung eine Standartlösung gibt. Die Problemstellung ist wie folgt:

Problemstellung
- es werden Stammdaten aufgenommen
- den Stammdaten werden Eingabedaten via Relationen gegenübergestellt
- Stammdaten und Eingabedaten werden nur 1x pro Jahr bearbeitet
- die Stammdaten können sich ändern, allerdings sollten den alten Eingabedaten auch die alten Stammdaten gegenübergestellt werden


meine Lösungsansätze:
Stammdaten und Eingabedaten werden mit Timestamps versehen
Statt gelöscht zu werden, wird nur die Timestamp verändert (Rückdatierung)
Statt geändert zu werden, wird der alte Datensatz zurückdatiert und ein neuer mit aktueller Timestamp erstellt
der vorherige Primärschlüssel in Kombination mit der Timestamp bildet den neuen Primärschlüssel

Pro: Alte Stammdaten bleiben erhalten, es werden nur neue Stammdatensätze erzeugt, wenn Sie auch wirklich geändert werden
Contra: überall Zusammengesetzte Primärschlüssel --> entspricht nicht mehr der 2ten Normalform
Contra: ich habe gelesen, das es meist eine schlechte Idee ist Timestamps in Primärschlüsseln zu nutzen


Meine Frage: Kann man das irgendwie schöner lösen? Dieses Problem hatte doch mit Sicherheit schon mal jemand vor mir.
Ps: Es kann durchaus sein, dass ich irgendetwas "offensichtliches" nicht sehe... ich mache das zum ersten Mal :)

Re: Datenbankmodellierung - Archivierung

BeitragVerfasst: Sa 31. Mai 2014, 19:50
von RainerH
Hallo Lix,

herzlich willkommen im Forum :)

Ja ja, die Archivierung von Stamddaten. Das kenne ich nur zu gut ;)
Dein Gedanke nur Timestamps zur Archivierung einzusetzen, ist wirklich gefährlich!
Hast Du schon mal über ein Flag nachgedacht, welches zu den Timestamps genutzt werden kann?

Am besten baust Du dir mal auf einem Papier einen zeitlichen Ablauf auf, dass hat mir damals geholfen.
Oder poste doch einfach deinen Ablauf, dann kann ich dir helfen...

Gruß,
Rainer