io valuterei anche la 3° strada che non hai ancora citato.
-- La prima è lo Script o Trigger
-- La seconda è lo script o Trigger + qualcosa che ti lancia un errore
la terza invece
Nella tabella utenti elimini il campo "Abilitato"
Nella tabella utenti_bannati aggiungi un campo di "RIAbilitato" ( Chiamiamolo RAB )
Ti fai una vista fra la tabella utenti e utenti_bannati e escludi gli utenti che hanno un ban privo del RAB
Mi sono spiegato male ma penso che si capisce
certamente è più lento perche deve elaborare .....
ma
- non rischi di sbagliare
- non hai script/trigger
- ti resta storia dei vecchi ban anche se "perdonati" con RAB
.