Muito parecido com um problema que postei aqui há um tempo atrás, só que dessa vez o problema não são os cálculos(já tenho classe pronta para isso), e sim a Arquiteura do BD.
Tenho uma arquitetura que será + ou - assim:
É um sistema de índices inflacionários, atualizado mensalmente, para 300 usuários.
É composto por indicadores e fórmulas.
Exemplo de fórmula:
F=(((0,4*(TrAt/TrAn))+(0,6*(FbAt/FbAn)))-1);
Terei que ter uma tabela de Indicadores com um formato assim:
id Simbolo Nome data valor
1 Tr Trigo 01/2001 1,2901
1 Tr Trigo 02/2001 1,3012
E uma para fórmula, tipo:
num desc formula
166 Formula do Pão ((0,4*(TrAt/TrAn))+(0,6*(FbAt/FbAn))-1)
O objetivo é quando o usuário escolher um período de tempo(exemplo entre jan e fev de 2001), substituir os Símbolos pelos respectivos valores em dada fórmula.Tipo:
(((0,4*(1,3012/1,2901))+(0,6*(1,2001/1,1222)))-1).
Ou seja At é atual(a data maior) e An(é a data antiga), sempre no formato mês/ano.
No meu problema anterior usando formulas bem parecidas, eu acabei usando o Prevayler, e depois quebrava as fórmulas com regex, substituia os valores e recompunha elas.(Sim, ficou porco, e com uns erros bizarros).
Como vocês montariam essas tabelas?Encheriam de gatilhos conectando os indicadores nos relacionamentos?