Em um de nossos bancos de dados, distinguimos entre
transactional
e dictionary
registros. Em poucas palavras,
transactional
registros são coisas que você não pode reverter na vida real, como uma chamada de um cliente. Você pode alterar o nome do chamador, status, etc., mas não pode descartar a chamada em si. Dictionary
registros são coisas que você pode alterar, como atribuir uma city
a um cliente. Transactional
registros e coisas que levam a eles nunca foram excluídos, enquanto dictionary
aqueles podem ser excluídos tudo bem. Por "coisas que levam a eles" quero dizer que assim que o registro aparece nas regras de negócios que pode levar a um
transactional
registro, este registro também se torna transactional
. Tipo, uma
city
pode ser deletado do banco de dados. Mas quando apareceu uma regra que dizia "enviar um SMS
para todos os clientes em Moscou ", as cidades se tornaram transactional
registros também, ou não seríamos capazes de responder à pergunta "por que este SMS
seja enviado". Uma regra geral para distinguir era esta:é apenas o negócio da minha empresa?
Se um dos meus funcionários tomou uma decisão com base em dados do banco de dados (como, ele fez um relatório com base em que alguma decisão de gerenciamento foi tomada e, em seguida, o relatório de dados foi baseado em desaparecido), foi considerado OK excluir esses dados.
Mas se a decisão afetou algumas ações imediatas com os clientes (como ligar, mexer no saldo do cliente etc.), tudo o que levou a essas decisões foi guardado para sempre.
Pode variar de um modelo de negócios para outro:às vezes, pode ser necessário registrar até mesmo dados internos, às vezes não há problema em excluir dados que afetam o mundo exterior.
Mas para o nosso modelo de negócios, a regra acima funcionou bem.