AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Ideen : SoftDelete nachträglich in ein großes Projekt einbauen
Thema durchsuchen
Ansicht
Themen-Optionen

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

Ein Thema von baumina · begonnen am 26. Nov 2013 · letzter Beitrag vom 2. Dez 2013
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.758 Beiträge
 
Delphi 12 Athens
 
#1

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

  Alt 26. Nov 2013, 15:15
Nur so ein Gedanke: Ich weiß ja nicht, wie deine Export/Import-Möglichkeiten sind, aber es wäre auch eine Überlegung wert, die gelöschten Daten extern in Dateien auszulagern (irgendwie sinnvoll benannt). An gelöschten Daten könnte ja eh nichts geändert werden, insofern ist das keine Einschränkung. Wenn das Löschen rückgängig gemacht werden soll, dann importierst du die Daten einfach wieder. Liegen die Dateien dann zu lange ungenutzt rum, spricht wohl auch nichts gegen ein Aufräumen.

Dazu braucht es auch keinen Eingriff in die Datenbank (sei es Struktur oder Trigger). Da wo die Kontrollabfrage kommt, schreibst du die Daten einfach raus, bevor du sie löscht. Mit einem separaten Dialog kann man dann aus den exportierten Dateien genau die passende auswählen und importieren.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Benutzerbild von BUG
BUG

Registriert seit: 4. Dez 2003
Ort: Cottbus
2.094 Beiträge
 
#2

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

  Alt 26. Nov 2013, 16:19
Über eine Art "Kasse 2 bitte Storno" habe ich auch schon nachgedacht, das aber dann wieder verworfen, da der Chef ja den Stornoschlüssel hätte und somit nichts gewonnen wäre, denn ob er jetzt 2 mal OK drücken muss oder noch ein Passwort eingeben soll, käme sicher aufs gleiche raus.
Du könntest den Chef zum Bestätigen den Namen des zu löschenden Objektes tippen lassen, wie es viele Online-Spiele machen.
Damit würde er eintippen müssen, ob es ein Auftrag oder eine Position ist. Da soll er sich mal rausreden

Abgesehen davon finde ich es fraglich, ob es klug ist, Aufträge oder Kunden überhaupt zu löschen (abgesehen von persönlichen Daten aus Datenschutzgründen). Ein Status, wie sx2008 ihn vorschlägt, wäre wohl insgesamt günstiger. Wenn man noch weiter geht, könnte man auch die Änderung an Datensätzen (mit Timestamp und Nutzer) dokumentieren, um im Zweifelsfall den Dialog mit dem Kunden nachzuvollziehen.
  Mit Zitat antworten Zitat
Benutzerbild von stahli
stahli

Registriert seit: 26. Nov 2003
Ort: Halle/Saale
4.358 Beiträge
 
Delphi 11 Alexandria
 
#3

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

  Alt 26. Nov 2013, 16:23
@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.
Stahli
http://www.StahliSoft.de
---
"Jetzt muss ich seh´n, dass ich kein Denkfehler mach...!?" Dittsche (2004)
  Mit Zitat antworten Zitat
Benutzerbild von baumina
baumina

Registriert seit: 5. Mai 2008
Ort: Oberschwaben
1.275 Beiträge
 
Delphi 11 Alexandria
 
#4

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

  Alt 27. Nov 2013, 07:45
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.
Hinter dir gehts abwärts und vor dir steil bergauf ! (Wolfgang Ambros)
  Mit Zitat antworten Zitat
Benutzerbild von Phoenix
Phoenix
(Moderator)

Registriert seit: 25. Jun 2002
Ort: Hausach
7.645 Beiträge
 
#5

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

  Alt 27. Nov 2013, 08:08
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.
Sebastian Gingter
Phoenix - 不死鳥, Microsoft MVP, Rettungshundeführer
Über mich: Sebastian Gingter @ Thinktecture Mein Blog: https://gingter.org
  Mit Zitat antworten Zitat
Benutzerbild von baumina
baumina

Registriert seit: 5. Mai 2008
Ort: Oberschwaben
1.275 Beiträge
 
Delphi 11 Alexandria
 
#6

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

  Alt 27. Nov 2013, 08:24
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.
Angehängte Grafiken
Dateityp: jpg achtung.jpg (65,5 KB, 47x aufgerufen)
Hinter dir gehts abwärts und vor dir steil bergauf ! (Wolfgang Ambros)
  Mit Zitat antworten Zitat
Benutzerbild von sh17
sh17

Registriert seit: 26. Okt 2005
Ort: Radebeul
1.690 Beiträge
 
Delphi 11 Alexandria
 
#7

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

  Alt 27. Nov 2013, 09:34
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
Sven Harazim
--
  Mit Zitat antworten Zitat
Frickler

Registriert seit: 6. Mär 2007
Ort: Osnabrück
637 Beiträge
 
Delphi XE6 Enterprise
 
#8

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

  Alt 2. Dez 2013, 11:27
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 ).
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.
  Mit Zitat antworten Zitat
Benutzerbild von baumina
baumina

Registriert seit: 5. Mai 2008
Ort: Oberschwaben
1.275 Beiträge
 
Delphi 11 Alexandria
 
#9

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

  Alt 2. Dez 2013, 12:54
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.
Hinter dir gehts abwärts und vor dir steil bergauf ! (Wolfgang Ambros)
  Mit Zitat antworten Zitat
Benutzerbild von sx2008
sx2008

Registriert seit: 15. Feb 2008
Ort: Baden-Württemberg
2.332 Beiträge
 
Delphi 2007 Professional
 
#10

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

  Alt 2. Dez 2013, 11:52
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.
fork me on Github
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 16:13 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