2009/8/31 Bruno Carneiro <[email protected]>

>
> <corte>
>
> Então, vou criar uma função que gera pra mim um relatório, e essa função
> deve me retornar um dado composto, cada linha uma venda e cada coluna
> detalhes sobre esta venda.
>
> Acontece que para retornar esse tipo composto, se eu seguir o exemplo, vou
> ter que criar uma tabela relatório, sendo que não vou armazenar nada nesta
> tabela, ela seria apenas o modelo para o retorno da minha função.
>
> Preciso criar um tabela, ou posso definir um tipo sem criar tabela?
>
>
Não precisa criar tabela, a não ser que seja esse o tipo de retorno
desejado.

Creio que na documentação você precisa dar uma olhada em [1], [2] e [3].


Outra coisa, enquanto escrevia este post, uma coisa me veio a mente: Ao
> invés de criar uma função que gere esse relatório, eu poderia no ato da
> venda, fazer todos os calculos de relatorio e gravar no campo de vendas.
> Por
> exemlo, lucro, despesas, comissões, tudo isso não varia depois da venda.
> Acho que o corretor seria eu calcular e gravar esses valores na hora da
> venda, quando for solicitado relatório eu apenas iria consultar esses
> dados.
> É melhor não é?
>
>
Essa sua abordagem irá diminuir o custo na hora da emissão do relatório,
pois o teu sistema não precisará processar essas informações neste momento
pois elas já estarão disponíveis.

Agora saber se essa é a melhor opção quem pode dizer é você... da sua
modelagem... dos resultados esperados... enfim são vários fatores a
considerar para dizer se essa abordagem é melhor que a outra...

Espero não ter gerado mais dúvidas, mas tem que pensar no todo da aplicação
(Desempenho, Manutenção da Arquitetura, Complexidade, etc).


[1] http://www.postgresql.org/docs/8.4/interactive/rowtypes.html
[2] http://www.postgresql.org/docs/8.4/interactive/sql-createtype.html
[3] http://www.postgresql.org/docs/8.4/interactive/xtypes.html

-- 
Fabrízio de Royes Mello
>> Blog sobre TI: http://fabriziomello.blogspot.com
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a