Es que no se borran los datos del cliente, lo que ocurre es que al crear un cliente nuevo se le debe asignar un ID nuevo y como ese campo es "unique" no se puede repetir por eso es que "se pierden" los datos históricos, porque pertenecen a un cliente dado de baja que tiene un ID distinto.
La base no la diseñe yo, no se que sentencias usaron para crearla.
Las tablas, hasta donde se, no están conectadas mas que por PK pero lo hace un soft externo, es decir, si tengo que buscar en la tabla de históricos tengo que pasarle las PK en el SELECT.
Por ejemplo
El código de cliente es un código para que puedan acceder al sistema y se cambia cada cierto tiempo, el ID del cliente es fijo.