Olá,

Há realmente pouquíssimos artigos na internet sobre esse tema (e que sejam
de qualidade não duvidosa).
Se ainda estás na modelagem, realmente concordo com o programador, é uma
forma mais correta de trazer os dados. Caso contrário, terás reduzido um
excelente banco de dados a um "simples coletor de dados".
Se tua modelagem não facilita a busca de todos os dados necessários para as
consultas essenciais, então tens de rever a mesma. Não deixe a união de
dados ocorrer no aplicativo, nem que para teres um tempo bom de busca
precises quebrar algumas das regras de normalidade (mas sempre mantendo o
controle sobre a qualidade das informações existentes, como alguma possível
replicação de dados com alguma coisa que force integridade - como triggers).

O banco de dados é o local onde fazemos as junções de dados para trazer
resultados - não o aplicativo.

De qualquer forma, sobre modelagem, acho que poucos sites terão dados
relevantes sobre isso, os melhores artigos sobre como realizar uma modelagem
estão em livros e revistas técnicas, não me recordo de nenhum em específico
no momento.

Espero ter ajudado,
Abraços e boa sorte na tua modelagem (essa é a parte mais desafiadora e mais
prazeirosa),

2009/5/25 Wagner Bonfiglio <wmbonfig...@gmail.com>

> Olá André,
>
> obrigado pela resposta.. O que parece acontecer é algo do tipo:
>
> O usuário faz uma consulta de carros e pede para separar por marca.. A
> maneira de mostrar eh assim:
>
> Fiat
> + (vc pode abrir e ver os carros da Fiat)
>   - Palio
>   + (pode abrir e ver os Palio's disponíveis)
>     - 2005 preto
>     - 2006 amarelo
>     - 2007 cinza
>   - Uno
>   +
>      - 2003 Azul
>      - 2009 Preto
>
> Ford
>  ...
>  ...
>  ...
>
>
> Então, o resultado viria completo, mais ou menos assim:
>
> Fiat | Palio | 2005 | Preto
> Fiat | Palio | 2006 | Amarelo
> Fiat | Palio | 2007 | Cinza
> Fiat | Uno  | 2003 | Azul
> Fiat | Uno  | 2009 | Preto
> Ford ...
> ...
> ...
>
> E no código ele vai tratando no Array...
>
> Só que, para montar esse resultado formatado assim, ele usou mais de uma
> tabela, com joins, group by, etc etc etc
>
>
>
> A alternativa seria fazer uma consulta para saber as marcas (retornaria
> Fiat e Ford), depois eu faria outra para retornar os carros daquela marca
> (pra Fiat retornaria Palio e Uno), e por último eu buscaria quais {Palio's,
> Uno's} tem no banco, retornando só (2005, Preto), (2006, Amarelo), (2007,
> Cinza), etc..
>
>
>
>
> Esse foi um exemplo relativamente simples, mas quando temos muitas tabelas,
> muitas ligações, muitas restrições, eu acho que fazer essas consultas
> pequenas e mais específicas podem ser mais rápidas no final do que fazer uma
> consulta só que retorne tudo oragnizado e geral, organizando tudo no
> código...
>
>
> Eu imagino que cada um tenha o seu ponto do vista mesmo, e também imagino
> que cada caso é um caso, mas essa questão surgiu durante a modelagem de um
> novo sistema, e causou uma discordância pois ele queria uma modelagem que
> permitisse ele a fazer uma consulta grande, enquanto eu preferi por uma
> modelagem que organizasse melhor os dados mas ficaria muito difícil para ele
> fazer essa mega-consulta....
>
> Seria interessante se tivesse algum artigo sobre isso, com estudo de caso e
> tal... Mas não achei nada numa busca rápida :/
>
>
>
> 2009/5/25 Andre Fernandes <fernandes.an...@gmail.com>
>
> Bom dia,
>>
>> esse é um assunto realmente complicado, muitas pessoas costumam discutir
>> sobre isso.
>> Se a conexão for permanente (ou seja, entre cada consulta não temos de
>> abrir novas conexões), então realmente pequenas consultas são a melhor
>> opção.
>> Contudo, como é oneroso manter conexões abertas por muito tempo com o
>> banco de dados, normalmente temos um impasse que precisa ser analisado caso
>> a caso, visto que a abertura e fechamento de conexões é algo caro, contudo
>> consultas muito pesadas também o são.
>> Precisas verificar no caso em específico qual é menos caro para a
>> performance do sistema, contudo eu sou adepto de evitar muitas conexões ao
>> banco, principalmente se houver muitos usuário simultâneos previstos.
>> O pensamento de teu programador teve uma falha apenas, a meu ver (isto é
>> uma opnião pessoal, há quem pense diferente): os dados precisam sair do
>> banco de dados já tratados (salvo formatação), para isso temos um banco com
>> tantos recursos como o PostgreSQL. Mas volto a falar, isso é minha opnião,
>> temos outras correntes e pessoas que discordam disso.
>>
>> Espero ter ajudado um pouco,
>> Atenciosamente,
>>
>> 2009/5/25 Wagner Bonfiglio <wmbonfig...@gmail.com>
>>
>>> Olá senhores...
>>>
>>> Esses dias eu estava conversando com um dos programadores aqui da minha
>>> empresa e percebi um hábito que ele tem e que eu não concordei muito, mas
>>> fiquei com uma dúvida no ar...
>>> (OBS: trata-se de programação WEB)
>>>
>>> Ele disse que prefere fazer uma consulta mais pesada mas que retorne o
>>> máximo de dados possíveis de uma só vez, para que o tratamento seja feito
>>> dentro do código e assim evitar o excesso de conexões ao banco...
>>>
>>> Eu quando era programador preferia fazer várias consultas leves, pensando
>>> mais no sentido de evitar que uma consulta exigisse muito do banco de
>>> dados...
>>>
>>> Vocês tem alguma opinião formada sobre isso? Ou melhor, existe alguma
>>> verdade absoluta sobre melhor prática nesse sentido?
>>>
>>> Valeu,
>>>    Wagner Bonfiglio
>>>
>>> _______________________________________________
>>> pgbr-geral mailing list
>>> pgbr-geral@listas.postgresql.org.br
>>> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>>>
>>>
>>
>>
>> --
>> André de Camargo Fernandes
>> Cel: (11) 7421-1379
>>
>> yellow belt <http://www.javablackbelt.com/UserView.wwa?userId=10305874> on 
>> JavaBlackBelt
>>
>>
>>
>> _______________________________________________
>> pgbr-geral mailing list
>> pgbr-geral@listas.postgresql.org.br
>> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>>
>>
>
> _______________________________________________
> pgbr-geral mailing list
> pgbr-geral@listas.postgresql.org.br
> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>
>


-- 
André de Camargo Fernandes
Cel: (11) 7421-1379

yellow belt <http://www.javablackbelt.com/UserView.wwa?userId=10305874> on
JavaBlackBelt
_______________________________________________
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a