Tô montando uma arquitetura para um sisteminha de índices inflacionários(compostos por índices e fórmulas), gostaria de uma opnião com as tabelas e algumas consultas do meu BD: O Sistema tem um Administrador(que na verdade é um operador Excel!!!), e ele quer que cada movimento do usuário (como logar no sistema e gerar relatório) sejam registrados em uma tabela "Histórico"(como quando ele se loga) ou "Consulta" cada vez que o usuário gerar um relatório.O sistema é pequeno(500 usuários e de 1000 a 2000 relatórios/dia). O usuário NÃO se cadastra no sistema, somente o Administrador faz isso.A única coisa que o usuário normal faz é gerar relatório, compreendendo um período de consulta(por exemplo 02/2000 a 12/2006), e o num de uma fórmula, em geral nesse formato: F=(((0,4*(TrAt/TrAn))+(0,6*(FbAt/FbAn)))-1); Onde Tr e Fb são índices(Trigo e Fécula de batata) e "At" e "An" são para Atual(a data mais nova) e Anterior(a data antiga). Exemplo de índice: 1 Tr Trigo Exemplo de valor_índice: 1 01/2001 1,2901 sem aumento
Ou seja, Além de Usuário,Histórico e Consulta, meu sistema tem só outras poucas tabelas,a saber: Fórmula(ID DESC FORMULA),Indice(ID SIMBOLO NOME) e Valor_Indice(ID DATA VALOR COMENTARIO).Quando o usuário digitar uma data(formato mês/ano) inicial e uma final + o número da fórmula e gerar o formulário, o sistema automaticamente pega o valor respectivo de cada Indice componente de fórmula e entrega no relatório o cálculo de cada indice da fórmula no período e o da própria fórmula(em %). Via Java, eu pegava cada fórmula, quebrava via REGEX, pesquisava pelos ìndices e reconstruía a fórmula de novo, o que dava um baita trabalho porquê as fórmulas variam de 1 a 8 índices e guardar a posição em String de cada componente variável ficava confuso e "ErrorProne".Preferi criar métodos java para cada tipo de fórmula(de 1 a 8 indices) passando para cada fórmula os respectivos índices e pesos para cálculo. Para isso eu criei dois campos na tabela Fórmula chamado Indices e Pesos. Depois desse preâmbulo todo(eu falo-escrevo- né?haha), vem as minhas 3 perguntas: 1)Acham a abordagem razoável criando Índices e Pesos linkada a Formula?Ou prefeririam tudo isoladamente.Exemplo atual: id desc formula indices pesos 166 Formula do Pão ((0,4*(TrAt/TrAn))+(0,6*(FbAt/FbAn))-1) Tr;Fb 0,4;0,6 2)Como vcs manteriam a tabela Histórico do usuário, a minha tá assim: Histórico(id_histórico,ID_USUARIO,DT_ACESSO,EMPRESA) e Consulta(id, data) Fundiriam Histórico com Consulta?Nota:Não haverá ADM de DB, por isso eu preciso que a base seja o mais "fácil" possível para o Administrador do Sistema, pois ele é leigo. Ah, para quem achar útil, o sistema crescerá no máximo, 500KB (ao MÊS). 3)Essa é mais técnica: Quando o usuário digitar o período, só gostaria de exibir no relatório o campo "comentario" de valor_indice se for o MÊS corrente, ou seja se o periodo for entre 02/2001 e 09/2008 não exibir nada, mas se for 03/2006 a 11/2008 exibir esse campo(de 11/2008) e o respectivo comentário.Sou novato em PostGreSQL, tem alguma função pronta para isso? um abraço á todos! -- DRDias Desenvolvedor de Sistemas Baseados em Java
_______________________________________________ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral