Relacionamento Postgres [RESOLVIDO]

1. Relacionamento Postgres [RESOLVIDO]

Miguel de Carvalho Oliveira
miguel.oliveira

(usa Ubuntu)

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


  


2. Re: Relacionamento Postgres [RESOLVIDO]

DAVISON MARCEL PASQUALINI
fdmarp

(usa Debian)

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]

Miguel de Carvalho Oliveira
miguel.oliveira

(usa Ubuntu)

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]

DAVISON MARCEL PASQUALINI
fdmarp

(usa Debian)

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]

Miguel de Carvalho Oliveira
miguel.oliveira

(usa Ubuntu)

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

Eder Pereira de Sousa
esousa

(usa Ubuntu)

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]

Miguel de Carvalho Oliveira
miguel.oliveira

(usa Ubuntu)

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






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts