Índice único de MySQL por múltiples campos

Tenemos un tipo especial de tabla en nuestra base de datos que almacena el historial de sus cambios en sí mismo. La llamada tabla "autoarchivada":

CREAT TABLE coverages (
   id INT, # primary key, auto-increment
   subscriber_id INT,
   current CHAR,  # - could be "C" or "H".
   record_version INT,
   # etc.
);

Almacena "coberturas" de nuestros suscriptores. El campo "actual" indica si se trata de un registro actual / original ("C") o un registro histórico ("H").

Solo podríamos tener una cobertura "C" actual para el suscriptor dado, pero no podemos crear un índice único con 2 campos (* subscriber_id y current *) porque para cualquier registro "C" dado podría haber cualquier número de "H "registros - historial de cambios.

Por lo tanto, el índice solo debe ser exclusivo paraactual == 'C' y cualquier suscriptor_id.

Eso podría hacerse en Oracle DB utilizando algo como "vistas materializadas": donde podríamos crear una vista materializada que solo incluiría registros concurrent = 'C' y cree un índice único con estos 2 campos: * subscriber_id, current *.

La pregunta es:¿Cómo se puede hacer esto en MySQL?

Respuestas a la pregunta(1)

Su respuesta a la pregunta