Wir haben ein Drucksystem, das ein Dokument (Rechnungen usw.) erstellt und druckt sie dann. Da ein Dokument etwa 4 KB groß ist, können wir sie nicht speichern. Wir möchten sie rechtzeitig erstellen, einige der Variablen, die zum Erstellen des Dokuments verwendet werden, können sich jedoch zu einem späteren Zeitpunkt ändern, aber wir müssen das Dokument weiterhin so anzeigen können, als wäre es die Version aus der Vergangenheit. Wenn beispielsweise ein Unternehmen die Bank, die Adresse oder sogar den Namen ändert, möchten wir nicht, dass diese Änderungen frühere Dokumente widerspiegeln.Speichern Entity-Status in der Zeit
Wir suchen also nach einer Lösung, um Platz zu sparen, indem wir Dokumente so erstellen, wie sie zum Anzeigen benötigt werden.
Ich habe mir ein paar Ideen einfallen lassen.
1) Speichern Sie alle benötigten Variablen zum Zeitpunkt der ersten Erstellung in einer Zeile (Bankdetails usw.) und verwenden Sie diese Zeile für die Berichterstellung. Nachteile: Viele wiederholte Daten (Bankdaten ändern sich nicht oft)
2) normalisieren wie verrückt, und haben etwa 5 zusätzliche Tabellen, mit Verweisen auf die Daten in der Hauptreihe gespeichert. Nachteile: Sehr ... unordentlich und viel Arbeit.
3) Speichern Sie alle Geschichte in der Zeit, Suche nach Datum. Verwenden Sie das Erstellungsdatum, um die Variablen in den anderen Tabellen zu einem bestimmten Zeitpunkt zu finden, indem Sie bei jeder Zeilenänderung eine Kopie aller Daten erstellen. Con verschwendet immer noch einige Daten jedes Mal, wenn jemand eine Änderung vornimmt.
Irgendwelche Ideen?
Nun, wenn Sie alte Daten speichern möchten - Sie werden in der Tat mehr Speicher verwenden ... ob dies eine Verschwendung ist, ist ein Punkt für die Diskussion, wenn Sie dies tun müssen ... Sie können in langsam ändern nachsehen Dimensionstabellen, um eine Historie aller Werte zu führen. Speicher ist billig, Sie werden sich sicher nicht darum kümmern, Änderungen an Daten zu behalten? Wenn Sie sich Sorgen machen, versuchen Sie es mit einem mehrstufigen Speicher, bei dem "heiße" aktuelle Daten auf schnellem Speicher gespeichert werden und einige billige langsame Massenspeicher die "kalten" archivierten Daten behalten – Milney