Ci sono problemi con l'implementazione dei nomi utente cancellati in questo modo? [chiuso]

-1

Ho l'obbligo di implementare nomi utente per un'applicazione ai fini del login. Il requisito specifica che il registro associato all'utente / nome utente nel database non deve essere eliminato. Il requisito specifica che il nome utente una volta contrassegnato come "cancellato" deve essere disponibile per il riutilizzo.

Quindi, al momento, l'implementazione cambia un flag booleano "cancellato" in true, quindi quando viene eseguito il login, la query verifica che il nome utente esista e che il valore "cancellato" booleano sia falso.

Ci sono problemi con l'implementazione dei nomi utente cancellati in questo modo? Ci sono altre soluzioni che evitano questi problemi?

    
posta nicoLinjava 19.03.2015 - 17:16
fonte

1 risposta

2

Non implementerei l'eliminazione dei nomi utente in questo modo utilizzando un flag boolean . Hai ragione che ci sono problemi con l'implementazione in questo modo; in particolare, cosa succede quando un altro utente registra quel nome utente? Riesci semplicemente a riportare la bandiera cancellata su true? Cosa succede se quell'utente quindi cancella l'account? Il tuo record storico è scomparso!

Tieni presente che hai due requisiti:

  • Fornisci funzionalità del nome utente per la tua applicazione
  • Fornisci un record storico per le aggiunte e le eliminazioni del nome utente

Non è necessario tentare di risolvere entrambi i problemi nella stessa tabella! Quello che dovresti fare è invece archiviare la registrazione dopo la cancellazione, invece di avere un flag booleano. In questo modo:

  • Non ingombrare la tabella nome utente attiva con molti dati irrilevanti
  • Avere un buon sistema per quando lo stesso nome utente viene cancellato più e più volte (basta avere più voci nella tabella di archivio)

Questa soluzione dovrebbe risolvere entrambi i problemi di implementazione.

    
risposta data 19.03.2015 - 17:37
fonte

Leggi altre domande sui tag