Traduzido com IA. Ainda não revisto pela comunidade. Ler em inglês

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

Modelação de dados do Steve: dominar estratégias de controlo de versões

Introdução:

Neste artigo, vamos explorar duas abordagens diferentes para lidar com o versionamento de registos na modelação de dados, com ideias e estratégias para gerir com eficiência várias versões de registos e os seus registos filhos.

Estas estratégias são essenciais para quem desenha modelos de objetos em que o controlo de versões é crucial.

Entender as abordagens de versionamento de registos

Existem duas abordagens principais para lidar com o versionamento de registos:

  1. Abordagem de registos pares
  2. Abordagem de versões filhas

Vamos aprofundar cada abordagem para entender a sua implementação, vantagens e desvantagens.

Abordagem de registos pares

Na abordagem de registos pares, cada versão de um registo é criada como um registo separado e do mesmo nível sob um objeto de nível superior. É um método simples, e a forma como o Salesforce implementa as cotações sob as oportunidades é um exemplo.

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

Implementação:

Cada versão é um registo separado sob um objeto de nível superior.

Pode marcar um dos registos como principal, mas todas as versões ficam visíveis em vistas de lista, listas relacionadas e relatórios.

Vantagens:

Desvantagens:

Sem um controlo adequado, pode haver vários registos principais ou em curso.

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. Esta abordagem permite um sistema limpo de versionamento e de histórico de alterações.

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

Implementação:

  1. Um objeto de nível superior representa a configuração, com objetos filhos a representar cada versão.
  2. Cada versão filha é numerada automaticamente e tem um estado (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, torna-se ativo, e a versão ativa anterior é arquivada.

Vantagens:

Desvantagens:

Exemplo de implementação no Salesforce

Captura de ecrã: 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.

Esta implementação garante que só um flow está ativo de cada vez, oferecendo um mecanismo de controlo de versões fiável e eficiente.

Secção 5: conclusão

Entender e escolher a abordagem certa de versionamento de registos é crucial na modelação de dados. A abordagem de registos pares é simples, mas a de versões filhas oferece mais controlo e um registo de auditoria eficiente. Estudando a implementação do Salesforce e considerando os seus próprios desafios de modelação, pode escolher a abordagem que melhor responde às suas necessidades.

Fique atento!

Para mais ideias e dicas, acompanhe aqui em www.SteveTechArc.com e no canal do YouTube @SteveTechArc (opens in a new tab). Subscreva e faça a sua modelação de dados brilhar connosco!

A ajudar a mudar o mundo, partilhando 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