Minha tabela de fatos consiste em reclamações com dimensões tÃpicas de quem, o quê e quando. Temos uma meta de que a reclamação deve ser respondida dentro de um determinado perÃodo de tempo.
Não tenho certeza sobre a melhor forma de modelar se a reclamação teve uma resposta dentro desse perÃodo de tempo.
Posso armazenar o valor de destino e o resultado na tabela de fatos como números inteiros com o resultado como medida. Ou eu poderia usar uma dimensão que tem valores de sim/não em vez de representar isso como uma medida, eu poderia usar uma medida calculada no meu cubo. Ou eu poderia usar uma combinação de ambos.
Existem prós, contras e pegadinhas modelando os fatos das formas descritas acima?
Prevejo que esta tabela de fatos será usada para obter o número total de reclamações, o número de reclamações respondidas a tempo, a porcentagem respondida a tempo e também identificar reclamações individuais que não foram respondidas a tempo.
Aqui está uma maneira flexÃvel de armazená-lo que deve suportar mudanças nos requisitos no futuro.
registration_date - closing_date
.Para o resultado, eu não o armazenaria como um sinalizador (sim/não), mas como um número. Se você ligar para a coluna
on_time
e colocar 1 para cada reclamação que atende à meta, poderá facilmente SOMAR nessa coluna para ter o total de reclamações on_time em um perÃodo.Eu vejo três maneiras de obter o resultado:
fact_complaint.elapsed_time
é menor ou igualdim_complaint_type.target
ou não. Pode ser perigoso se pessoas diferentes usarem fórmulas diferentes. Se você tem uma ferramenta com uma camada de metadados (por exemplo, OBIEE, SAP BO, ...), você pode definir essa medida de resultado de uma vez por todas.