Modelagem de dados do Steve: dominando estratégias de controle de versões
Introdução:
Neste post, vamos explorar duas abordagens diferentes para lidar com o versionamento de registros na modelagem de dados, trazendo ideias e estratégias para gerenciar com eficiência várias versões de registros e seus registros filhos.
Essas estratégias são essenciais para quem projeta modelos de objetos em que o controle de versões é crucial.
Entendendo as abordagens de versionamento de registros
Existem duas abordagens principais para lidar com o versionamento de registros:
- Abordagem de registros pares
- Abordagem de versões filhas
Vamos aprofundar cada abordagem para entender sua implementação, vantagens e desvantagens.
Abordagem de registros pares
Na abordagem de registros pares, cada versão de um registro é criada como um registro separado e de mesmo nível sob um objeto de nível superior. É um método simples, e a forma como o Salesforce implementa cotações sob oportunidades é um exemplo.

Implementação:
Cada versão é um registro separado sob um objeto de nível superior.
Você pode marcar um dos registros como principal, mas todas as versões ficam visíveis em visualizações de lista, listas relacionadas e relatórios.
Vantagens:
- Simples e fácil de implementar.
Desvantagens:
- Todas as versões ficam visíveis, o que dificulta distingui-las.
- Não há uma ligação clara nem trilha de auditoria entre as versões.
Sem um controle adequado, pode haver vários registros principais ou em andamento.
Abordagem de versões filhas
A abordagem de versões filhas cria dois níveis de objetos: um objeto pai de nível superior e um objeto filho para cada versão. Essa abordagem permite um sistema limpo de versionamento e registro de mudanças.

Implementação:
- Um objeto de nível superior representa a configuração, com objetos filhos representando cada versão.
- Cada versão filha é numerada automaticamente e tem um status (por exemplo, arquivada, ativa, pendente).
- A versão ativa fica bloqueada e é usada em produção, enquanto uma versão em rascunho pode ser editada.
- Quando um rascunho é ativado, ele se torna ativo, e a versão ativa anterior é arquivada.
Vantagens:
- Oferece uma trilha de auditoria clara e documentação histórica.
- Garante que só haja uma versão ativa por vez.
- Os registros arquivados servem como histórico inalterado.
Desvantagens:
- Pode parecer complexo para alguns usuários, mas é necessário para processos importantes, como flows.
Exemplo de implementação no Salesforce

O Salesforce implementa uma abordagem parecida com os flows. Há um objeto de flow de nível superior com versões filhas. Cada versão é numerada automaticamente, oferecendo um histórico detalhado de cada flow, com as datas de criação e ativação.
Essa implementação garante que só um flow esteja ativo por vez, oferecendo um mecanismo de controle de versões confiável e eficiente.
Seção 5: conclusão
Entender e escolher a abordagem certa de versionamento de registros é crucial na modelagem de dados. A abordagem de registros pares é simples, mas a de versões filhas oferece mais controle e uma trilha de auditoria eficiente. Estudando a implementação do Salesforce e considerando seus próprios desafios de modelagem, você pode escolher a abordagem que melhor atende às suas necessidades.
Fique de olho!
Para mais ideias e dicas, acompanhe aqui em www.SteveTechArc.com e no canal do YouTube @SteveTechArc (opens in a new tab). Inscreva-se e faça sua modelagem de dados brilhar com a gente!
Ajudando a mudar o mundo compartilhando boas ideias com outros arquitetos e com quem está na jornada para se tornar um!
Transcrição feita com a ajuda de IA
STA 2.1