Aggiungi un vincolo univoco sui campi (nome utente, eliminato) Cambia il tipo di campo per "eliminato" in INTEGER.
Durante l'operazione di eliminazione (può essere eseguita in trigger o in parte del codice in cui è necessario eliminare effettivamente l'utente) copiare il valore del campo id nel campo eliminato.
Questo approccio ti consente:
- mantieni nomi univoci per gli utenti attivi (eliminati =0)
- consenti di eliminare più volte utenti con lo stesso nome utente
Il campo "Eliminato" non può avere solo 2 valori perché il seguente scenario non funzionerà:
- crea l'utente 'Sam'
- L'utente Sam è stato eliminato
- Crea un nuovo utente witn userName 'Sam'
- Provi a eliminare l'utente con nomeutente 'Sam' - fallito. Hai già il record userName ='Sam' e cancellato ='1'