Conforme o tempo passa, seu esquema pode precisar ser alterado para atender às mudanças nos requisitos técnicos. Quando o esquema é alterado, você pode usar padrões de design de esquema para manter a estrutura original do documento. Ao reter versões históricas de documentos e esquemas, você evita migrações de esquema que exigem muito desempenho e tempo de inatividade.
Casos de uso
Use os padrões de controle de versão quando seus requisitos de dados mudarem e você quiser manter os dados históricos em sua forma original. Os padrões de controle de versão são mais úteis quando seu aplicação atende a qualquer uma destas condições:
O tempo de inatividade do aplicativo não é uma opção para migração.
A atualização de documentos para o novo esquema pode levar horas, dias ou semanas para ser concluída.
Atualizar documentos para o novo esquema não é um requisito.
Os padrões de controle de versão ajudam a decidir como as migrações de dados ocorrem e fornecem mais flexibilidade em relação aos bancos de dados tabulares.
Considere estes casos de uso de aplicação específicos para padrões de controle de versão:
Uma seguradora permite que os clientes modifiquem sua apólice para garantir itens adicionais. Quando um cliente altera sua apólice, a seguradora mantém um registro das alterações da apólice. A empresa usa o padrão Document Versioning para controlar revisões na apólice, armazenando cada atualização em um documento separado. Os dados históricos são armazenados em uma coleção separada e não afetam as queries aos dados atuais.
Uma empresa armazena informações de contato do cliente. No esquema original, vários métodos de contato como
homePhone,cellPhoneeemailsão armazenados em campos individuais. Com o tempo, menos clientes têm númeroshomePhone, então a empresa modifica o esquema para mover as informações de contato para um documentocontactsgenérico, que tem subcampos variáveis. Após a alteração do esquema, a empresa implementa o padrão de versionamento de esquema e adiciona um camposchemaVersionpara informar ao aplicativo como ele deve consultar cada documento.
Tarefas
Para saber como manter um histórico das alterações de documentos e esquemas, consulte estas páginas: