Delphi-PRAXiS
Seite 2 von 3     12 3      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Ideen : SoftDelete nachträglich in ein großes Projekt einbauen (https://www.delphipraxis.net/177762-ideen-softdelete-nachtraeglich-ein-grosses-projekt-einbauen.html)

stahli 26. Nov 2013 17:23

AW: Ideen : SoftDelete nachträglich in ein großes Projekt einbauen
 
@Uwe
So etwas wollte ich auch erst vorschlagen. Also eine Serialisierung von gelöschten Daten sozusagen.

Beim späteren "wiederimportieren" müssten dann aber auch die diversen Abhängigkeiten zwischen den Tabellen berücksichtigt werden.

Insofern würde ich wohl auch eher ein Gelöscht-Flag andenken.

baumina 27. Nov 2013 08:45

AW: Ideen : SoftDelete nachträglich in ein großes Projekt einbauen
 
Hätte ich denn serverseitig auch Möglichkeiten, da irgendetwas umzustellen, dass man im Allgemeinen Aktionen rückgängig machen könnte? So eine Art undo-last-Transaction. Denn meist fällt der Fehler ja gleich auf.

Phoenix 27. Nov 2013 09:08

AW: Ideen : SoftDelete nachträglich in ein großes Projekt einbauen
 
Okay. So wie ich das sehe, gehst Du das falsche Problem an.

Das Problem ist nämlich meiner Meinung nach NICHT die fehlende Möglichkeit, gelöschtes wiederherzustellen.

Das Problem ist vermutlich eher die Benutzerführung, die es dem User (Deinem Chef) zu schwer macht, das richtige Element (die Position im Auftrag) zu löschen und ihm immer das falsche Element (den Auftrag selber) anbietet.

Mein Erster Vorschlag wäre hier z.b., wenn man auf der Maske (ich weiss ja nicht wie die aussieht) dann beim Drücken von 'Löschen' erstmal einen Dialog anzeigt, auf dem nichts vorselektiert ist. Hier muss er erstmal aktiv die gewünschten Positionen selektieren und kann diese dann direkt löschen. Um den kompletten Auftrag zu löschen muss man hier auf dem Dialog dann eine spezielle Schaltfläche 'Kompletten Auftrag löschen' anwählen, um den Auftrag wirklich zu löschen.

So ist das löschen einzelner Positionen einfacher (Del, Selektieren, Enter, gut ist) als das des Auftrags (Del, extra auf kleinen, separaten Button navigieren, auswählen, nochmal bestätigen, weg isser).

Das bekommst auch vermutlich schneller (=Billiger) hin, ohne gleich die Datenbank anzufassen. Zumindest vorschlagen würde ich das mal.

Das Soft-Delete kannst Du danach - wenn es denn dann wirklich noch notwendig sein sollte ;-) - später immer noch einbauen.

baumina 27. Nov 2013 09:24

AW: Ideen : SoftDelete nachträglich in ein großes Projekt einbauen
 
Liste der Anhänge anzeigen (Anzahl: 1)
Ja, wie ich schon zuvor geschrieben habe, hat die Umstellung der Benutzerabfrage auch nichts gebracht. 1. Abfrage "Auftrag wirklich löschen", 2. Abfrage siehe Bild.

sh17 27. Nov 2013 10:34

AW: Ideen : SoftDelete nachträglich in ein großes Projekt einbauen
 
Auch wenn man sicher benutzerseitig etwas machen kann, bei den Adressen ist es doch ganz interessant.

Wie haben bei wichtigen/relativ statischen Tabellen (Adressen als markantes Bespiel) ein Journal nebenher laufen, was jede Änderung an einem Datensatz nochmal in dieses Journal schreibt - fortlaufend. Wird der Datensatz gelöscht - gibts auch nochmal einen Eintrag. So hat man eine Historie über den gesamten Lebenslauf des Datensatzes, kann schauen wer wann was dran gemacht hat oder gelöscht hat und kann auch zu früheren Versionen zurückspringen. Hat schon mehrmals geholfen, den Angestellten zu entlasten :)

Frickler 2. Dez 2013 12:27

AW: Ideen : SoftDelete nachträglich in ein großes Projekt einbauen
 
Zitat:

Zitat von baumina (Beitrag 1237572)
Ja, wie ich schon zuvor geschrieben habe, hat die Umstellung der Benutzerabfrage auch nichts gebracht. 1. Abfrage "Auftrag wirklich löschen", 2. Abfrage siehe Bild.

Das bringt gar nichts, solange man den "Ja" Knopf mit "j" oder Enter auslösen kann. Das muss ausschließlich mit der Maus gehen. Eine Taste ist viel zu schnell getippt, da braucht man nicht mal auf den Schirm schauen... weitere Tipps: ein Kennwort eingeben lassen fürs Löschen, oder auch das Wort "löschen" oder "ja" (man sieht, ich hatte das Problem auch :-D).
Wichtig ist, dass es "gefährliche Löschvorgänge" jeweils eigene Buttons gibt, die nicht direkt neben den Buttons für "einfaches Löschen" stehen. Dann ist die Wahrscheinlichkeit für Fehlbedienung gleich viel geringer.

sx2008 2. Dez 2013 12:52

AW: Ideen : SoftDelete nachträglich in ein großes Projekt einbauen
 
Zitat:

Zitat von baumina (Beitrag 1237572)
2. Abfrage siehe Bild.

Also ich finde in der Meldung sollte auch die Auftragsnummer und als weitere Hilfestellung vielleicht noch der Kunde stehen.
"Soll der KOMPLETTE QM-Auftrag 47110815 (Fa. Böhringer, Hamburg-Altona) gelöscht werden?"

Wenn das nicht drinsteht, dann gewöhnt sich der User an die Meldung und drückt auf "Ja".
Vielleicht hat der Benutzer in seiner Dusseligkeit den Auftrag 47110816 angewählt.
Und wenn die Meldung hochpopt dann kann der angewählte QM-Auftrag im Hintergrund überdeckt werden.

baumina 2. Dez 2013 13:54

AW: Ideen : SoftDelete nachträglich in ein großes Projekt einbauen
 
Zitat:

Zitat von Frickler (Beitrag 1238160)
Das muss ausschließlich mit der Maus gehen.

Früher, als ich noch Schulungen gab, habe ich festgestellt, dass die Leute, die immer nur mit der Maus gefummelt haben, irgendwie zu keinen brauchbaren Ergebnissen kamen, mich hat diese Fummelei teilweise echt aggressiv gemacht, weil entweder gar nichts oder das falsche getroffen wurde. Viele üben bis heute noch den Doppelklick.

Deswegen war bei mir Übung 1 : legt mal alle eure Mäuse hinter den Bildschirm, wir arbeiten nur mit der Tastatur und siehe da, es ging alles viel schneller und einfacher. Bis heute kenne ich noch sehr viele Tastenkürzel von Windows und den Office-Produkten. Du wirst staunen wie schnell sich Excel bedienen lässt, wenn man nur Tasten statt der Maus benutzt.

Bis heute bin ich der Meinung, dass jedes Programm mit der Tastatur bedienbar sein sollte.

rapante 2. Dez 2013 14:20

AW: Ideen : SoftDelete nachträglich in ein großes Projekt einbauen
 
Bei uns gab' es einmal die Idee, als Löschbestätigung eine kleine Rechenaufgabe lösen zu lassen um die geistige Anwesenheit des Benutzers sicher zustellen ;)

Man kann so viele Bestätigungen, Warnmeldungen, Fettgedruckte Rote Buttons etc. einbauen wie man möchte - all das wird nicht verhindern, dass Datensätze "versehentlich" gelöscht werden. Solche Maßnahmen greifen vielleicht am Anfang - solange bis sich der Benutzer an die neue Klick- und Bestätigungsarie gewöhnt hat.
Der Mensch macht nun mal Fehler, auch wenn er vorher 20 mal bestätigen muss, das er wirklich sicher ist die Aktion durchführen zu wollen.

In den meisten Fällen haben wir in den Tabellen einfach ein Löschflag hinzugefügt. Nur an den wirklich wichtigen Stellen gibt es eine komplette Historie mit allen Änderungen.

Zitat:

Zitat von baumina (Beitrag 1238179)
Zitat:

Zitat von Frickler (Beitrag 1238160)
Das muss ausschließlich mit der Maus gehen.

Bis heute bin ich der Meinung, dass jedes Programm mit der Tastatur bedienbar sein sollte.

Da kann ich baumina nur zustimmen. Allerding gibt es tatsächlich Benutzer die jahrelang am PC arbeiten und nicht mal CTRL+C/CTRL+V kennen. Insofern muss die Bedienung
sowohl per Maus als auch per Tastatur uneingeschränkt möglich sein. Dann kann der Benutzer selbst entscheiden.

DeddyH 2. Dez 2013 14:21

AW: Ideen : SoftDelete nachträglich in ein großes Projekt einbauen
 
Aber genau darum ging es ja: ein falscher Tastendruck, und schon geht das Dilemma los. Deshalb der Vorschlag, nur Mausbedienung zuzulassen, dadurch wird eine Fehlbedienung erschwert, zumindest ist das der Plan ;)


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:53 Uhr.
Seite 2 von 3     12 3      

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 by Thomas Breitkreuz