Traduzido por IA. Ainda não revisado pela comunidade. Ler em inglês

Blog · 8 de setembro de 2023 · Steve Simpson · Arquitetura de dados

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:

  1. Abordagem de registros pares
  2. 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.

Opção 1, registros pares: cada versão é uma cotação separada sob a oportunidade. Vantagem: um modelo simples. Desvantagens: todas as versões aparecem em visualizações de lista e relatórios, os registros não ficam claramente ligados, e mais de um pode estar ativo ou em rascunho ao mesmo tempo

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:

Desvantagens:

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.

Opção 2, versões filhas: um pai Configuration com filhos Configuration Version e seus próprios objetos filhos. Vantagens: versionamento e histórico de mudanças claros, só uma versão ativa, versões arquivadas não podem ser alteradas. Desvantagens: um modelo mais complexo, e as regras de status precisam ser garantidas

Implementação:

  1. Um objeto de nível superior representa a configuração, com objetos filhos representando cada versão.
  2. Cada versão filha é numerada automaticamente e tem um status (por exemplo, arquivada, ativa, pendente).
  3. A versão ativa fica bloqueada e é usada em produção, enquanto uma versão em rascunho pode ser editada.
  4. Quando um rascunho é ativado, ele se torna ativo, e a versão ativa anterior é arquivada.

Vantagens:

Desvantagens:

Exemplo de implementação no Salesforce

Captura de tela: a página de detalhes de um flow do Salesforce com a lista de versões do flow, uma delas ativa

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