Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Armazenando revisões de objetos relacionais de maneira eficiente


Se isso for puramente para fins de 'arquivamento', talvez seja melhor uma tabela separada para as revisões.

No entanto, se você precisar tratar as revisões anteriores da mesma forma que as revisões atuais (por exemplo, se quiser dar aos usuários a capacidade de reverter um produto para uma revisão anterior), provavelmente é melhor manter uma única tabela de produtos, em vez de copiar dados entre as mesas. Se você está preocupado com o desempenho, é para isso que servem os índices.

Você pode criar uma chave primária composta para a tabela de produtos, por exemplo. PRIMARY KEY (product_id, revision) . Talvez um proc armazenado para encontrar a revisão atual - selecionando a linha com a revision mais alta para um determinado product_id -será útil.