2009/5/18 Sidnei Vladisauskis <[email protected]>:
> 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 <[email protected]>
>>
>> 2009/5/18 Lucas Souza <[email protected]>:
>> >
>> >
>> > 2009/5/18 Sidnei Vladisauskis <[email protected]>
>> >>
>> >> 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
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a