2017-09-05 5 views
0

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?

+0

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

Antwort

0

Genauigkeit und Leistung müssen hier im Vordergrund stehen. Lagerung ist ein entferntes Drittel.

ENTWEDER speichern alle Werte der Variablen in dem Dokument aufzufüllen (vergessen Sie nicht die Version des Dokuments enthalten)

OR Version der Variablen und Punkt jeder auf die Version alle Quellen das wurde in dem Dokument verwendet. Dies wäre effektiv eine sich langsam verändernde Dimension.

Die beste Option für Sie hängt vom Verhältnis der Dokumente zur Quelldatenänderung ab. Ich gehe davon aus, dass Sie für eine Bank viel mehr Dokumente haben werden, als Sie an den Bankdaten ändern. In diesem Fall denke ich, dass die zweite Option am ausbaufähigsten ist, die beste Leistung hat und wahrscheinlich den geringsten Platz langfristig nutzt.

Verwandte Themen