Supponiamo di avere una tabella utenti così strutturata

utenti
ID|Nome|Cognome|Abilitato

dove la colonna "Abilitato" contiene un valore 0 o 1 a seconda se l'utente è attivo(1) o è stato bannato(0)

Poi utilizzo una tabella separata per memorizzare tutte le informazioni relative al ban degli utenti

utenti_bannati
ID|Motivazione|Data del ban

Da un punto di vista logico nel momento in cui vado a bannare un utente (utenti.Abilitato passa a 0), questo deve essere necessariamente memorizzato nella tabella utenti_bannati.
Allo stesso modo, quando elimino un utente da utenti_bannati, la colonna utenti.Abilitato deve passare a 1

Sono accorgimenti che devo necessariamente ricordarmi di prendere nel momento in cui creo lo script di query oppure posso creare una "relazione obbligatoria" tra la il campo e la tabella che se non viene rispettata lancia un errore?