Pessoal, primeiro a história depois o problema. HISTÓRIA Por conta da implantação da Nota Fiscal Eletrônica, teremos que zerar a numeração da NF. Acontece que obviamente temos a Nf nº 00001 no sistema, e por um erro de modelagem os vinculos com duplicatas e todo o resto do sistema é feito pelo campo "numero da nota", pois bem imaginem o tamanho da bucha! Poderiamos fazer várias coisas, dentre elas, criar um campo, como se fosse um tipo da NF, ou alterar os vinculos de toda a base, mas isso geraria, muito trabalho refazendo todos os jois de relatórios, consultas telas e etc... detalhe a implantação começa em 01/12/08. Tomamos a seguinte descisão: iniciar o contador de Nf´s com 1.000.000.001(um bilhão e um), assim todos os vinculos são mantidos.
PROBLEMA O problema gerado com isso é menor: somente a consulta e a apresentação do numero da Nf em dezenas de milhares de lugares tem que ser tratada. É ai que preciso da opinião de vocês: 1) simplesmente colocar em todos os relatórios e telas: "select cast(numerodanf -1000000000 as integer) as numerodanf" - como a alteração tem q ser feita em muitos lugares tenho medo que no futuro, alguém coloque a conta com um zero a menos por exemplo, ou esqueça... ai vai dar merda... 2) posso fazer um função: "select tira_bilhao(numerodanf) as numerodanf" - com uma função, elimino o problema de errar na conta, e ainda posso pensar em eliminar os dois bilhoes e por ai vai... mas o desempenho da consulta ou do relatório pode piorar... 3) construir um operador que faça a conta da mesma forma que uma função. - a query ficaria assim "select numerodanf operador 1", como se fosse isso: "select numerodanf^1". - Vai dar o mesmo resultado que usar uma função, mas pelo que li, o desempenho dos operadores é otimizado de alguma forma. - Se isso for possível, a gambiarra vai ficar mais limpa nas queries e menos sujeita a erros. - Estou viajando nessa idéia de operador? - Se não estou como eu construo um? Agradeço as contribuições. Abraços a todos. Adriano Espinoza
_______________________________________________ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral