Em primeiro lugar:
Para que trocar código? Isso normalmente e feito porque o cliente pede, pede, pede e acaba fazendo, mas não tem nenhum teor gerencial que faça isso realmente ser importante.
Se alguem coloca em seu código informações adicionais (como classe, grupo, etc) está na hora de rever com urgencia este conceito.
Em segundo lugar:
Para que serve o update cascade? Para resolver problemas de integridade referencial como estas.
Cordialmente,
Fabiano Costa