partiamo dal presupposto che in teoria il tuo db non è propiramente esatto.

una soluzione migliore sarebbe rendere il recapito "figlio" di persona.(è solo un consiglio poi fai tu)

detto questo basta che metti on delete cascade, on update cascade alle tabelle "padre" cosi che quando cambi o elimini qualcosa i cambiamenti si riperquotono anche sulle "figlie" (questo se non vuoi tenere conto di uno storico di cambiamenti/cancellazioni)