Pular para o conteúdo

Relacionamento Postgres [RESOLVIDO]

Responder tópico
  • Denunciar
  • Indicar

1. Relacionamento Postgres [RESOLVIDO]

Enviado em 03/05/2011 - 12:22h

Boa tarde navegantes;
Estou com uma dúvida cruel na relação entre tabela.
É assim, eu tenho uma tabela de PRODUTOS, nela há os campos:

ID
NOME
SETOR_ID
SUBSETOR_ID

Até aí tudo bem.
Eu tenho mais 2 tabelas SETOR, SUBSETOR. Fica assim:
-SETOR-
ID
NOME

-SUBSETOR-
ID
NOME
SETOR_ID

Na tabela SUBSETOR o campo SETOR_ID está relacionado com o ID da tabela SETOR. E o ID das tabela SETOR e SUBSETOR estão relacionados com os campos SETOR_ID E SUBSETOR_ID da tabela PRODUTO.

A idéia é a seguinte: Para cadastrar um produto é necessário ter um setor cadastrado, e poder colocar o subsetor referente ao setor.

Na tabela setor eu cadastrei
-SETOR-
ID 1-2
NOME PADARIA-AÇOUGUE

-SUBSETOR
ID 1-2
NOME FRIOS-CARNE BOVINA
ID_SETOR 1-2

Ao inserir um produto ter que colocar qual setor ele pertence e subsetor, sendo que se eu colocar PADARIA eu não posso escolher CARNE BOVINA como subetor.

insert into produto (id, nome, setor_id, subsetor_id) values (1,'pao frances','1','2');

Esse insert está funcinando, a idéia seria ão funcionar porque padaria não pertence ao sugrupo bovino.

Conto com vocês,
Desde já agradeço
Att; Miguel de Carvalho Oliveira

Responder tópico

2. Re: Relacionamento Postgres [RESOLVIDO]

Enviado em 03/05/2011 - 17:16h

Cara, vou lhe ser honesto ... não entendi seu problema muito não, se puder explicar melhor.

Pelo pouco que eu entendi ... eu faria algo tipo assim:

alter table SUBSETOR add CONSTRAINT un_setor_subsetor unique ( id,setor_id);

alter table PRODUTOS add FOREIGN KEY (setor_id,sub_setor_id) references SUBSETOR (setor_id,id);

mas explica melhor ... de repente posso ajudar mais.

3. Re: Relacionamento Postgres [RESOLVIDO]

Enviado em 03/05/2011 - 19:25h

Boa noite fdmarpl, obrigado pela atenção.
Vou tentar explicar de uma forma mais simples com um exemplo;
Você concorda comigo que Pão frances pertence ao setor padaria e o subsetor é paes?
Mas não é isso que acontece no meu banco, eu posso cadastrar por exemplo Pão frances no setor padaria e no subsetor carne bovina.
Não era para deixar, pois no cadastro da carne bovina está como referencia o açougue da tabela setor.

Fico grato com a disposição a me ajudar.
Agradeço mais uma vez!!
Att.

4. Re: Relacionamento Postgres [RESOLVIDO]

Enviado em 03/05/2011 - 19:46h

Então, a fk que mandei não ajuda? da um exemplo do conteudo das tabelas ..

5. Re: Relacionamento Postgres [RESOLVIDO]

Enviado em 03/05/2011 - 19:51h

Então, amanhã no meu serviço irei testa-la.

na tabela Setor há dois registros:
SETOR
id: 1
nome: padaria

outro

SETOR
id: 2
nome: açougue

na tabela Subsetor

SUBSETOR
id: 1
nome: carne bovina
setor_id: 2 (Esse é referente à açougue da tabela setor)

e outro registro

SUBSETOR
id: 2
nome: pães
setor_id: 1 (Esse é referente à padaria da tabela setor)

Muito obrigado novamente!!!

6. Relacionamento Postgres

Enviado em 14/05/2011 - 15:36h

Cria uma terceira tabela, SetorSubSetor(tabelaid, setorid, subsetorid) e relaciona esta tabela no produto.

então ficaria assim

Tabela Produto Relacionado com a tabela SetorSubSetor que é relacionada com as outras duas tabelas.

Com isso se você decidir mudar o SubSetor não precisa mexer com os registros de produtos.

Abraços,

7. Re: Relacionamento Postgres [RESOLVIDO]

Enviado em 16/05/2011 - 08:49h

Ogrigado pela sugestão esousa. Talvez iria me ajudar antes, mas agora fiz um processo diferente, estou validando os dados no próprio sistema

Responder tópico

Responder tópico

Entre na sua conta para responder.

Fazer login para responder