Índice exclusivo do MySQL por vários campos
Temos um tipo especial de tabela em nosso banco de dados que armazena o histórico de suas alterações em si. A chamada tabela "auto-arquivada":
CREAT TABLE coverages (
id INT, # primary key, auto-increment
subscriber_id INT,
current CHAR, # - could be "C" or "H".
record_version INT,
# etc.
);
Ele armazena "coberturas" de nossos assinantes. O campo "atual" indica se este é um registro atual / original ("C") ou histórico ("H").
Poderíamos ter apenas uma cobertura "C" atual para o assinante em questão, mas não podemos criar um índice exclusivo com 2 campos (* subscriber_id e current *) porque, para qualquer registro "C", pode haver qualquer número de "H "registros - histórico de alterações.
Portanto, o índice deve ser exclusivo apenas paraatual == 'C' e qualquer subscriber_id.
Isso poderia ser feito no Oracle DB usando algo como "visualizações materializadas": onde poderíamos criar uma visualização materializada que incluiria apenas registros comatual = 'C' e crie um índice exclusivo com esses 2 campos: * subscriber_id, current *.
A questão é:como isso pode ser feito no MySQL?