Frage

Unsere aktuelle Enterprise-Lösung ist eine ASP.NET MVC-Anwendung durch das Entity Framework angetrieben. Es gibt ein paar Links auf, wie in den Änderungsereignisse für die Prüfung einzuhaken. Ich bin nicht wirklich interessiert daran.

Ich habe Interesse an Unternehmensebene Revisions Architektur. Diejenigen von euch, mit den Unternehmensebene Kampfwunden, was hat Ihre Revisions Lösungen gewesen? Haben Sie Objekte in Datenbanken in einem Rahmen serialisiert. Setzen Sie Datenbank-Trigger Tabellen zu prüfen? Verwenden Sie eine separate Datenbank, die alle zusammen, damit Ihre Prüfungs Wachstum wirkt sich nicht auf Ihre App-Datenbank? Ich habe Interesse an den bewährten Lösungen hier. Ich weiß, es gibt Möglichkeiten in unserer Technologiewahl (EF), aber ich bin zuerst in der Stiftung interessiert.

Links würde sehr geschätzt werden.

War es hilfreich?

Lösung

Ich habe mehrere Lösungen gesehen, aber mein Favorit war denkbar einfach:

  • Erstellen Sie Audit-Tabellen, die jede Quelltabelle spiegeln, Hinzufügen von ein paar zusätzlichen Spalten das Datum und die Art der Änderung verfolgen (Einfügen, Aktualisieren oder löschen, wenn Sie es unterstützen) und die Benutzer machen die Änderung. Entfernen Sie alle Einschränkungen und Indizes (es sei denn, Sie erwarten eine Menge der Suchanfragen zu tun).

  • Innerhalb der Tabelle Update-Logik (wir verwendeter Verfahren, aber es gibt keinen Grund, es nicht mit einem OR / M oder anderer Persistenz-Schicht, da die entsprechenden Haken getan werden könnte), schreibt sowohl für die Quelltabelle und die Audit-Tabelle.

hat dieser zahlreiche Vorteile, aber die größte (meiner Meinung nach) ist nicht mit Sorgen zu machen oder den gesamten Code schreiben die Transaktionsintegrität der paarigen Schreiboperationen in dem Client zu verwalten.

Andere Tipps

Ich habe keine Links, sondern im System, dass ich die Freude habe, hier am Tag Job zu halten. Wir haben eine einzige Audit-Tabelle, dass im Grunde die folgenden Informationen gespeichert.

Tablename, PrimaryKeyValue, ModifiedColumn, OldValue, NewValue, Change, Datum ändern

Nun, das funktioniert großartig für Audit Geschwindigkeit, in unserem Code, wir haben eine gemeinsame Schnittstelle für die automatische Durchführung der Audit-Protokollierung, sondern von einer „Bewertung“ Sicht ist es nicht der „schnellste“ Weg, um die Informationen zu erhalten Rückzieher. (Zugegeben, wir haben nicht wirklich etwas getan zu müssen im Audit-Protokoll suchen ...)

Wir hatten vor kurzem das gleiche Problem in unserem Unternehmen zu lösen. Wir waren erforderlich, auch zu früheren Versionen der Lage sein, um wieder zurück.

Am Ende haben wir die Prüfung der Geschäftseinheiten anstatt die Tabellen in SQL. Wir Serialisierung im Grunde die Datensätze in der DB und zu verfolgen, damit die Änderungen, die von einer Version zur nächsten vorgenommen werden. Dieser Ansatz ermöglicht es uns, frühere Versionen in die Geschäftseinheiten retreive und dann durch Aufrufen der gleichen speichern Operationen wieder zurück. Diese Funktionalität zufällt wieder auf die Anwendungen Verantwortung verschoben werden, da es hier gelöst werden müssen, sonst unser Service könnte über zu viele Details über die teilnehmenden Anwendungen wissen müssen. Serivce Operationen Aufzeichnungen von Versionen abzurufen, von Terminen, sehen Geschichte, und natürlich prüfen Änderungen vorgesehen sind. Es ist ein Opt-in-Ansatz für unterschiedliche Anwendungsgruppen und verschiedene Einheiten innerhalb (nicht alles in der DB so werden muss auditted warum tun).

Wir bauen dann eine leichte Website, die auf den Dienst spricht und kann alle Versionen angezeigt werden soll. Wir bauten einen Mechanismus, um die Ergänzungen / Aktualisierungen / Löschungen zu zeigen, zwischen den Versionen (wirklich cool ui Darstellung) zu vergleichen, das Benutzern ermöglicht, zu sehen, wer wann was geändert hat. Der Dienst kann einen Link auf die URL, die Versionen eines Unternehmens zu betrachten, zurückschicken. Auf diese Weise können unsere webaps + winform / wpf apps einen Browser starten, so dass Benutzer die Änderungen sehen können.

Vielleicht kann ich verpacken diese und geben, wenn jemand interessiert ist ....

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top