Re: [pgbr-geral] Dúvida conceitual em select
Vou dar uma lida e uma pensada melhor em tudo... obrigado por enquanto 2009/5/18 Osvaldo Kussama > 2009/5/18 Sidnei Vladisauskis : > > O problema é que acho que minha tabela não pode ser desse jeito... > > > > porque não tenho um produtos para várias lojas e sim um produto para cada > > loja. > > > > imaginem assim, tenho os produtos: > > tv lcd lg 29" na loja 1 > > tv lcd lg 29" black piano na loja 2 > > > > o único detalhe que muda é a descrição... > > > > mas na hora do select quero trazer tv lcd 29" e em que loja tem isso > > > > +ou- como funciona o busca pé ou outro site do gênero. > > > > > > 2009/5/18 Osvaldo Kussama > >> > >> 2009/5/18 Lucas Souza : > >> > > >> > > >> > 2009/5/18 Sidnei Vladisauskis > >> >> > >> >> Fala pessoal, > >> >> > >> >> Estou com uma dúvida conceitual para fazer um select > >> >> > >> >> Vamos lá: > >> >> > >> >> tenho uma tabela "produtos" onde tenho > >> >> id > >> >> name > >> >> loja_id > >> >> > >> >> e tenho uma tabela loja onde tenho > >> >> loja_id > >> >> name > >> >> > >> >> > >> >> Tenho produtos que possuem em duas lojas, por exemplo: > >> >> tv lcd lg 29" > >> >> > >> >> ela está dentro de produtos duas vezes > >> >> > >> >> Tabela produtos > >> >> | id | name | loja_id > >> >> | 1 | tv lcd lg 29" | 1 > >> >> | 2 | tv lcd lg 29" | 2 > >> > > >> > desta forma você esta replicando dados desnecessariamente, > >> > > >> > o correto seria uma 3º entidade para associar o produto a loja > assim... > >> > > >> > (exemplo) tabela produto_relacao_loja > >> > > >> > loja_id (PK, FK) > >> > produto_id (PK, FK) > >> > estoque > >> > preco > >> > > >> > > >> >> > >> >> > >> >> Quando faço select * from produtos tenho todos os resultados. > >> >> > >> >> Como eu rotorno o seguinte? > >> >> > >> >> | name | lojas > >> >> | tv lcd lg 29" | 1,2 > >> >> > >> >> Tem como? > >> >> > >> >> Se eu der group by name ele pede id tb, e ai dá na mesma... > >> >> > >> > >> > >> Além do excelente e apropriado conselho do Lucas você pode usar, > >> especificamente para o select desejado, uma função de agregação. > >> Veja o exemplo array_accum em: > >> http://www.postgresql.org/docs/current/interactive/xaggr.html > >> > > > Se isto for mesmo verdade eu diria que este é um caso único e > sui-generis de rede de lojas. > Imagine por ex. a livraria Saraiva em que cada loja da rede tivesse > seus próprios livros e que cada um deles não estivesse a venda em > nenhuma outra loja da rede. Me parece muito estranho e fora da > realidade. > > Dê uma revisada em seu modelo conceitual de dados e leia um pouco > sobre normalização. Pode começar por aqui: > http://pt.wikipedia.org/wiki/Normaliza%C3%A7%C3%A3o_de_dados > > Osvaldo > ___ > 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
Re: [pgbr-geral] Dúvida conceitual em select
2009/5/18 Sidnei Vladisauskis : > O problema é que acho que minha tabela não pode ser desse jeito... > > porque não tenho um produtos para várias lojas e sim um produto para cada > loja. > > imaginem assim, tenho os produtos: > tv lcd lg 29" na loja 1 > tv lcd lg 29" black piano na loja 2 > > o único detalhe que muda é a descrição... > > mas na hora do select quero trazer tv lcd 29" e em que loja tem isso > > +ou- como funciona o busca pé ou outro site do gênero. > > > 2009/5/18 Osvaldo Kussama >> >> 2009/5/18 Lucas Souza : >> > >> > >> > 2009/5/18 Sidnei Vladisauskis >> >> >> >> Fala pessoal, >> >> >> >> Estou com uma dúvida conceitual para fazer um select >> >> >> >> Vamos lá: >> >> >> >> tenho uma tabela "produtos" onde tenho >> >> id >> >> name >> >> loja_id >> >> >> >> e tenho uma tabela loja onde tenho >> >> loja_id >> >> name >> >> >> >> >> >> Tenho produtos que possuem em duas lojas, por exemplo: >> >> tv lcd lg 29" >> >> >> >> ela está dentro de produtos duas vezes >> >> >> >> Tabela produtos >> >> | id | name | loja_id >> >> | 1 | tv lcd lg 29" | 1 >> >> | 2 | tv lcd lg 29" | 2 >> > >> > desta forma você esta replicando dados desnecessariamente, >> > >> > o correto seria uma 3º entidade para associar o produto a loja assim... >> > >> > (exemplo) tabela produto_relacao_loja >> > >> > loja_id (PK, FK) >> > produto_id (PK, FK) >> > estoque >> > preco >> > >> > >> >> >> >> >> >> Quando faço select * from produtos tenho todos os resultados. >> >> >> >> Como eu rotorno o seguinte? >> >> >> >> | name | lojas >> >> | tv lcd lg 29" | 1,2 >> >> >> >> Tem como? >> >> >> >> Se eu der group by name ele pede id tb, e ai dá na mesma... >> >> >> >> >> Além do excelente e apropriado conselho do Lucas você pode usar, >> especificamente para o select desejado, uma função de agregação. >> Veja o exemplo array_accum em: >> http://www.postgresql.org/docs/current/interactive/xaggr.html >> Se isto for mesmo verdade eu diria que este é um caso único e sui-generis de rede de lojas. Imagine por ex. a livraria Saraiva em que cada loja da rede tivesse seus próprios livros e que cada um deles não estivesse a venda em nenhuma outra loja da rede. Me parece muito estranho e fora da realidade. Dê uma revisada em seu modelo conceitual de dados e leia um pouco sobre normalização. Pode começar por aqui: http://pt.wikipedia.org/wiki/Normaliza%C3%A7%C3%A3o_de_dados Osvaldo ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Dúvida conceitual em select
Em Seg, 2009-05-18 às 14:34 -0300, Sidnei Vladisauskis escreveu: > O problema é que acho que minha tabela não pode ser desse jeito... > > porque não tenho um produtos para várias lojas e sim um produto para > cada loja. > > imaginem assim, tenho os produtos: > tv lcd lg 29" na loja 1 > tv lcd lg 29" black piano na loja 2 > > o único detalhe que muda é a descrição... > > mas na hora do select quero trazer tv lcd 29" e em que loja tem isso > > +ou- como funciona o busca pé ou outro site do gênero. Independente de como está sua modelagem, para o seu problema em específico você chegou a testar a dica do Osvaldo? Ela é muito útil para este tipo de cenário em que você quer que todos os dados que apareceriam em varias linhas acabem aparecendo em uma única. > 2009/5/18 Osvaldo Kussama > Além do excelente e apropriado conselho do Lucas você pode > usar, > especificamente para o select desejado, uma função de > agregação. > Veja o exemplo array_accum em: > http://www.postgresql.org/docs/current/interactive/xaggr.html -- Dickson S. Guedes mail/xmpp: gue...@guedesoft.net - skype: guediz http://guedesoft.net - http://www.postgresql.org.br http://www.rnp.br/keyserver/pks/lookup?search=0x8F3E3C06D428D10A signature.asc Description: Esta é uma parte de mensagem assinada digitalmente ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Dúvida conceitual em select
O problema é que acho que minha tabela não pode ser desse jeito... porque não tenho um produtos para várias lojas e sim um produto para cada loja. imaginem assim, tenho os produtos: tv lcd lg 29" na loja 1 tv lcd lg 29" black piano na loja 2 o único detalhe que muda é a descrição... mas na hora do select quero trazer tv lcd 29" e em que loja tem isso +ou- como funciona o busca pé ou outro site do gênero. 2009/5/18 Osvaldo Kussama > 2009/5/18 Lucas Souza : > > > > > > 2009/5/18 Sidnei Vladisauskis > >> > >> Fala pessoal, > >> > >> Estou com uma dúvida conceitual para fazer um select > >> > >> Vamos lá: > >> > >> tenho uma tabela "produtos" onde tenho > >> id > >> name > >> loja_id > >> > >> e tenho uma tabela loja onde tenho > >> loja_id > >> name > >> > >> > >> Tenho produtos que possuem em duas lojas, por exemplo: > >> tv lcd lg 29" > >> > >> ela está dentro de produtos duas vezes > >> > >> Tabela produtos > >> | id | name | loja_id > >> | 1 | tv lcd lg 29" | 1 > >> | 2 | tv lcd lg 29" | 2 > > > > desta forma você esta replicando dados desnecessariamente, > > > > o correto seria uma 3º entidade para associar o produto a loja assim... > > > > (exemplo) tabela produto_relacao_loja > > > > loja_id (PK, FK) > > produto_id (PK, FK) > > estoque > > preco > > > > > >> > >> > >> Quando faço select * from produtos tenho todos os resultados. > >> > >> Como eu rotorno o seguinte? > >> > >> | name | lojas > >> | tv lcd lg 29" | 1,2 > >> > >> Tem como? > >> > >> Se eu der group by name ele pede id tb, e ai dá na mesma... > >> > > > Além do excelente e apropriado conselho do Lucas você pode usar, > especificamente para o select desejado, uma função de agregação. > Veja o exemplo array_accum em: > http://www.postgresql.org/docs/current/interactive/xaggr.html > > Osvaldo > ___ > 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
Re: [pgbr-geral] Dúvida conceitual em select
2009/5/18 Lucas Souza : > > > 2009/5/18 Sidnei Vladisauskis >> >> Fala pessoal, >> >> Estou com uma dúvida conceitual para fazer um select >> >> Vamos lá: >> >> tenho uma tabela "produtos" onde tenho >> id >> name >> loja_id >> >> e tenho uma tabela loja onde tenho >> loja_id >> name >> >> >> Tenho produtos que possuem em duas lojas, por exemplo: >> tv lcd lg 29" >> >> ela está dentro de produtos duas vezes >> >> Tabela produtos >> | id | name | loja_id >> | 1 | tv lcd lg 29" | 1 >> | 2 | tv lcd lg 29" | 2 > > desta forma você esta replicando dados desnecessariamente, > > o correto seria uma 3º entidade para associar o produto a loja assim... > > (exemplo) tabela produto_relacao_loja > > loja_id (PK, FK) > produto_id (PK, FK) > estoque > preco > > >> >> >> Quando faço select * from produtos tenho todos os resultados. >> >> Como eu rotorno o seguinte? >> >> | name | lojas >> | tv lcd lg 29" | 1,2 >> >> Tem como? >> >> Se eu der group by name ele pede id tb, e ai dá na mesma... >> Além do excelente e apropriado conselho do Lucas você pode usar, especificamente para o select desejado, uma função de agregação. Veja o exemplo array_accum em: http://www.postgresql.org/docs/current/interactive/xaggr.html Osvaldo ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Dúvida conceitual em select
2009/5/18 Sidnei Vladisauskis > Fala pessoal, > > Estou com uma dúvida conceitual para fazer um select > > Vamos lá: > > tenho uma tabela "produtos" onde tenho > id > name > loja_id > > e tenho uma tabela loja onde tenho > loja_id > name > > > Tenho produtos que possuem em duas lojas, por exemplo: > tv lcd lg 29" > > ela está dentro de produtos duas vezes > > Tabela produtos > | id | name | loja_id > | 1 | tv lcd lg 29" | 1 > | 2 | tv lcd lg 29" | 2 desta forma você esta replicando dados desnecessariamente, o correto seria uma 3º entidade para associar o produto a loja assim... (exemplo) tabela produto_relacao_loja loja_id (PK, FK) produto_id (PK, FK) estoque preco > > > Quando faço select * from produtos tenho todos os resultados. > > Como eu rotorno o seguinte? > > | name | lojas > | tv lcd lg 29" | 1,2 > > Tem como? > > Se eu der group by name ele pede id tb, e ai dá na mesma... > > Obrigado > > ___ > pgbr-geral mailing list > pgbr-geral@listas.postgresql.org.br > https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral > > -- Lucas de Souza D'Ávila Graduando em Sistema de Informação - CV Lattes: http://lattes.cnpq.br/9245658982061645 http://merendas.blogspot.com/ ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
[pgbr-geral] Dúvida conceitual em select
Fala pessoal, Estou com uma dúvida conceitual para fazer um select Vamos lá: tenho uma tabela "produtos" onde tenho id name loja_id e tenho uma tabela loja onde tenho loja_id name Tenho produtos que possuem em duas lojas, por exemplo: tv lcd lg 29" ela está dentro de produtos duas vezes Tabela produtos | id | name | loja_id | 1 | tv lcd lg 29" | 1 | 2 | tv lcd lg 29" | 2 Quando faço select * from produtos tenho todos os resultados. Como eu rotorno o seguinte? | name | lojas | tv lcd lg 29" | 1,2 Tem como? Se eu der group by name ele pede id tb, e ai dá na mesma... Obrigado ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral