AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Serverseitiges Logbuch über Datenänderungen
Thema durchsuchen
Ansicht
Themen-Optionen

Serverseitiges Logbuch über Datenänderungen

Ein Thema von ZOD · begonnen am 20. Okt 2017 · letzter Beitrag vom 26. Okt 2017
 
ZOD

Registriert seit: 6. Mai 2009
97 Beiträge
 
#1

Serverseitiges Logbuch über Datenänderungen

  Alt 20. Okt 2017, 09:27
Datenbank: Firebird • Version: 2.5 • Zugriff über: SQLExpress
Hallo Zusammen.

Wir denken gerade darüber nach, ob in unserem Umfeld die Integration eines Änderungslogbuchs auf Datenbankserverseite für uns sinnvoll möglich ist.

Hintergrund:
Produktivdatenbank läuft unter Firebird 2.5 (Entwicklungstests zusätzlich mit FB3).
Sämtliche Tabellen haben eindeutige ID-Spalten (über Generatoren erzeugte integer IDs).
Eher unbedeutend in diesem Zusammenhang, aber zur Vollständigkeit:
die Clientanwendung ist unter Delphi entwickelt, DB-Zugriff über DBExpress Komponenten.

Unser gedanklicher Ansatz ist nun folgender:
jede Änderung an einem Datensatz löst den Logbuchprozess aus.
Als Logbuch stellen wir uns eine Tabellenstruktur vor, in der die Änderungen abgelegt werden (Details noch offen).
Im Logbuchprozess soll über Steuertabellen entschieden werden, bei welcher Tabelle in welchem Umfang ein Log geführt wird.
Optimal wäre natürlich z.B. eine stored procedure, die als Parameter den Tabellen-Namen und die Datensatz-ID übergeben bekommt,
so dass mithilfe der Systemtabellen (Metadaten) dann automatisiert Änderungen in der o.g. Logbuchstruktur protokolliert werden - siehe hier Frage 2) unten.

Das ganze ist - gelinde gesagt - noch ein nebulöses Wolkenschloss an Wünschen und Ideen.

Es gibt nun einige Fragen zu diesen Überlegungen, für die ich bei meinen Recherchen (Google und Co) noch keine Antworten gefunden habe - oder ich habe vielleicht ein Verständnisproblem. Hier also die Frageliste:

1) Anstoßen des Logbuchprozesses
Natürlich könnte ich in jeder Tabelle einen Trigger für insert/update/delete anlegen und da den Logbuchprozess anstoßen,
geht das nicht einfacher - sozusagen als zentraler Trigger?

2) Änderungen erkennen
Eine triviale Notwendigkeit ist, dass - um Änderungen zu erkennen - der Zustand vorher mit dem Zustand nacher verglichen werden muss. Prinzipiell ist das mit Tabellen-Trigger vom Typ "before" möglich (old.xx zu new.xx vergleichen).
Gibt es eine Möglichkeit, die beiden Datenmengen (old und new) z.B. einer stored procedure verfügbar zu machen? Dann könnte es vermieden werden, die gesamte Prüflogig in JEDER Tabelle mehrfach abzulegen.

Ich bin dankbar für Tips und Hinweise.
Gruß
Markus
  Mit Zitat antworten Zitat
 

 

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:22 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz