Einzelnen Beitrag anzeigen

Benutzerbild von Jasocul
Jasocul

Registriert seit: 22. Sep 2004
Ort: Delmenhorst
1.354 Beiträge
 
Delphi 11 Alexandria
 
#27

AW: DB-Memofeld wer hats wann geändert

  Alt 18. Feb 2016, 07:34
Ich habe im Moment in meiner DB-Anwendung ein Memofeld, in dem jeder Benutzer Hinweise zu einer Baugruppe hinzufügen, ändern oder löschen darf. Nun kommt die Frage auf, wenn ein Benutzer weder sein Kürzel noch ein Datum dazuschreibt, weiß keiner mehr wer das wann eingetragen hat. Und wie es eben so nach ein paar Monaten ist, es will keiner gewesen sein.
Und was passiert, wenn einer die Einträge eines Anderen verändert?
Nun fragt mich mein Chef nach einer einfachen, schnellen Lösung um sehen zu können wer wann was in das Memofeld eingefügt/geändert oder gelöscht hat.
Das geht nur über eine Protokollierung. Dabei muss du den alten und den neuen Zustand festhalten. Zusätzlich (Anforderung des Chefs) Zeitpunkt und Name. Da würde ich mal nebenbei dezent auf den Datenschutz hinweisen wollen. In manchen Fällen ist sowas zulässig, aber oft bedenklich.
Meiner DB-Anwendung ist der eingeloggte Benutzer bekannt.
Deine DB kennt den Benutzer bestimmt auch. Ist also nicht von deiner Anwendung abhängig.
Wie die meisten, empfehle ich den Einsatz von Triggern. Dann wird auch protokolliert, wenn am Programm vorbei etwas mit den Daten gemacht werden sollte (Zum Beispiel der Admin direkt auf der Datenbank). Innerhalb des Programms kannst du auch im BeforePost etwas machen. Da du nicht wissen kannst, was geändert wurde, ist es völlig sinnlos den Text irgendwie auf Vollständigkeit zu parsen. Die Änderungen können ja auch mittendrin gemacht worden sein.
Aber wie es halt bei einem Memofeld so ist, es wird mal hier und da von einem Report gedruckt oder einer Maske angezeigt.
Was hat das mit dem Problem zu tun? Oder muss jeder zu jeder Zeit sehen können, wer was geändert hat? In dem Fall müsstest du noch eine Änderungs-Historie ins Programm einbauen. Einfacher geht es so: Jemandem fällt auf, dass Informationen falsch oder unvollständig sind --> Info an Chef, dass da was nicht stimmt. Der prüft dann die Historie und leitet alles weitere ein. Aber auch hier gilt: Datenschutz beachten.

Der Trigger ist in einer halben Stunde locker zu machen (wohl eher 10 nur Minuten, wenn man es schonmal gemacht hat). Eine Mini-Anwendung, die das Änderungs-Protokoll anzeigt, ist für dich sicher im Halbschlaf in 10 Minuten zusammengeklickt. Ist ja nur eine kleine Anzeige-Anwendung mit einem SQL.
Peter
  Mit Zitat antworten Zitat