Eliminacion en cascada por supuesto la mejor y mas clara manera de hacerlo, y se comienza a eliminar desde la ultima tabla en que se inserto datos (aunque obviamente depende del relacionamiento)
....el administrador decide eliminar al cliente(teniendo en cuenta que el cliente tiene registrado muchas compras) pero a la vez no desea perder ninguna de sus compras hechas puesto que lo necesita como historial. Ahora la pregunta es.. Como hacer para que el cliente no figure mas en la tabla maestra pero sin perder sus transacciones hechas en su historial de compras...