| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 04/11/2008 15:10:40
|
Ironlynx
Moderador
![[Avatar]](/images/avatar/93d65641ff3f1586614cf2c1ad240b6c.jpg)
Membro desde: 02/05/2003 01:06:41
Mensagens: 3515
Localização: The other side of the screen
Offline
|
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?
|
Não basta persistir...tem que prevalecer!
Ironlynx
Anarquista de Sistemas
http://osereojava.blogspot.com/ |
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 05/11/2008 00:19:02
|
domingos.neto
Thread.start()
Membro desde: 19/09/2007 11:51:25
Mensagens: 37
Offline
|
Eu quebraria a sua tabela de indicadores em duas, porque desse jeito ela está desnormalizada.
Então você teria uma tablea INDICADOR com ID SIMBOLO NOME e outra VALOR_INDICADOR com ID DATA VALOR.
Eu faria uma tabela de relacionamento entre INDICADOR e FORMULA com ID_INDICADOR, ID_FORMULA. Assim você liga INDICADOR com FORMULA.
|
Visite: http://www.codeinstructions.com/ |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 07/11/2008 14:26:13
|
Ironlynx
Moderador
![[Avatar]](/images/avatar/93d65641ff3f1586614cf2c1ad240b6c.jpg)
Membro desde: 02/05/2003 01:06:41
Mensagens: 3515
Localização: The other side of the screen
Offline
|
domingos.neto,
my bad, eu não fui claro, e no meu post dá a entender que eu tenho problemas com normalização, e eu postei daquela forma só para ilustrar.
Na verdade, a minha tabela de valores do indicador já está assim: ID DATA VALOR COMENTARIO
Mas o meu problema é em relação a substituição nas fórmulas.Será que valeria a pena ter algo como: simbolo_atual e simbolo_antigo associado a tabela valor_indicador???
Tente entender:
Quando o usuário fizer uma consulta, ele vai selecionar um período de tempo(por exemp: 01/2005 a nov/200 e digitar o número da fórmula(exemplo: 166).Quando apertar consultar, deverá haver a imediata susbtituição dos indicadores que tal fórmula possui para os valores respectivos ao período de tempo, e executado o cálculo da fórmula.Não é tão fácil quanto parece(principalmente a parte de desconstrução e reconstrução de cada fórmula via REGEX mas isso é coisa para outro tópico..).
|
Não basta persistir...tem que prevalecer!
Ironlynx
Anarquista de Sistemas
http://osereojava.blogspot.com/ |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 11/11/2008 14:43:28
|
Ironlynx
Moderador
![[Avatar]](/images/avatar/93d65641ff3f1586614cf2c1ad240b6c.jpg)
Membro desde: 02/05/2003 01:06:41
Mensagens: 3515
Localização: The other side of the screen
Offline
|
Só para constar como eu resolvi:
Eu criei na tabela indicador dois campos Atual e Anterior (por exemplo:TrAt-TrAn) assim a data antiga associa a um campo e a atual a outro, substituindo pelos seus respectivos valores na hora de usar.Sei lá, achei porrrrco, mas deve funcionar.
|
Não basta persistir...tem que prevalecer!
Ironlynx
Anarquista de Sistemas
http://osereojava.blogspot.com/ |
|
|
 |
|
|
|
|