Ci sono dei lati negativi nella sostituzione delle caselle di conferma js con "mark record as deleted"?

1

Credo nell'esperienza utente di avere sempre un pop-up di conferma per le eliminazioni. Tuttavia (anche se siamo molto abituati), una piccola finestra popup separata non è l'ideale e per gli utenti su diversi dispositivi di navigazione, utilizzando dispositivi di input diversi, possono essere un incubo.

Quindi stavo pensando di cambiare tutto il mio 'conferma cancella?' pop-up in NON avendo un pop-up, eliminando immediatamente il record MA poi offrendo un link per ripristinare il record su qualunque pagina l'utente sia messo dopo la "cancellazione".

Questo richiede assolutamente di aggiornare l'applicazione in modo che, invece di eliminare il record, sia contrassegnato come cancellato o spostato in un 'nome_scritto_destinato_destinato' e quindi in entrambi i casi può essere eliminato.

Potrebbe quindi essere disponibile un processo di "amministrazione" per eliminarli periodicamente.

Sto cercando dei pensieri sul perché questa potrebbe essere una cattiva idea e qualsiasi insidia da guardare.

Vorrei sapere se ci sono dei vantaggi / svantaggi nel spostarlo su una tabella separata rispetto a quella che ha cancellato.

    
posta Michael Durrant 26.08.2014 - 17:52
fonte

2 risposte

1

Penserei al problema in modo opposto. Invece di "soft delete" pensalo come una bandiera di archivio. Non dovresti mai pianificare di ripristinare il record, poiché dovrai aggirare le tue regole per i nuovi record, che potrebbero essere cambiati da quando questo record è stato creato, o consentire al record di superare la tua logica di business del "nuovo record" ed eventualmente violare l'unicità regole e altre di tali linee guida che non sono stabilite come vincoli di database.

Non vedo una funzione di "ripristino" che funziona molto bene, infatti funziona sempre peggio quando la tua azienda cambia (ma i tuoi dati di "cancellazione morbida" rimangono invariati). A meno che tu non abbia fatto tutti i piani per la funzione di recupero dati allo stesso tempo, hai progettato la funzione di eliminazione software e l'hai testata (oltre a continuare a testarla nel tempo).

La cosa più realistica è che creerai un sistema di "archiviazione" che si trova accanto al tuo sistema di produzione. Ogni tanto, le righe archiviate verranno inviate lì. Quando sono necessari possono essere la poltrona girevole inserita nel nuovo sistema da un addetto all'inserimento dei dati, ricreata in modo efficace da zero.

Va notato che entrambi i design funzioneranno per tale scenario.

    
risposta data 26.08.2014 - 21:58
fonte
0

TBH Non lo sposterei in un database o una tabella separati in quanto sarebbe solo un ulteriore livello di complicazione.

Nel mio ultimo lavoro, che ha sviluppato e mantenuto soluzioni aziendali per grandi clienti, lasceremmo i record al loro posto, usando solo un campo bit / booleano per nasconderlo all'utente. Un utente con privilegi più elevati potrebbe venire avanti e quindi ripristinare un record se è stato fatto per errore.

Dopo un certo periodo di tempo, verrà eseguito un servizio di eliminazione che quindi eseguirà un'eliminazione definitiva su questi record. Puoi aggiungere un campo "DeletedOn" per decidere se un record è stato cancellato abbastanza a lungo per giustificare una cancellazione definitiva.

Presto implementerò qualcosa di simile nel mio nuovo progetto.

    
risposta data 26.08.2014 - 18:11
fonte

Leggi altre domande sui tag