Fóruns sobre PHP, JavaScript, HTML, MySQLi, jQuery, Banco de Dados, CSS


Moderador: web

 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 390
Sexo: Masculino
Localização: VOLTA REDONDA RJ
Contato:

Chave estrangeira

01-09-2009 21:53

Bom noite a todos.
tenho 2 tabelas, chamadas produto e analise da seguinte forma:

produto
id_prod
produto_prod
fab_prod
analise_prod

analise
id_an
analise_an
met_an
unid_an
esp_an

cada produto pode ter várias análises, até aí beleza, cadastro o produto e escolho as análises referente a este, podendo variar de 2 a 30 , para um total de 104.

A minha dificuldade esta em listar as analises de um determinado produto, exemplo:

produto
id_prod - 1 - 2 - 3 - 4
produto_prod - 01 - 02 - 03 - 04
fab_prod - 11 - 12 - 13 - 14
analise_prod - 1,2,4 - 2,3 - 2,3 - 2,4 ( aqui eu guardo o id da analise )

analise
id_an - 1 - 2 - 3 - 4
analise_an - 61 - 62 - 63 - 64
met_an - a - b - c - d
unid_an - g - h - i - j
esp_an - m - n - o - p

Levando em conta que tenho 4 analises cadastradas e 4 produtos com suas respectivas analises , não estou conseguindo listar que o produto 01 tem as analises 1,2,4 , isto é, ficando assim :

id_prod / produto_prod
---1----/-----01------
id_an / analise_an / met_an / unid_an / esp_an
--1---/----61------/---a----/---g-----/---m---
--2---/----62------/---b----/---h-----/---n---
--4---/----64------/---d----/---j-----/---p---

em outras palavras ----> o produto 01 vai fazer as analises 61, 62 e 64 com seus respectivos dados.

caso escolha outro produto :

id_prod / produto_prod
---3----/-----03------
id_an / analise_an / met_an / unid_an / esp_an
--2---/----62------/---b----/---h-----/---n---
--3---/----63------/---c----/---i-----/---o---

em outras palavras ----> o produto 03 vai fazer as analises 62 e 63 com seus respectivos dados.

Aí, eu andei estudando sobre chave estrangeira, montei a seguinte tabela:
CREATE TABLE produtoanalise ( id_produto INT (5) NULL, id_analise INT (5) NULL, PRIMARY KEY (id_produto, id_analise), FOREIGN KEY (id_produto) REFERENCES `produto`(id_prod), FOREIGN KEY (id_analise) REFERENCES `analise`(id_an)ON DELETE CASCADE ON UPDATE CASCADE);

Só que não estou conseguindo dizer que:

id_produto - id_analise
---- 1 --------/----- 1 ------
---- 1 --------/----- 2 ------
---- 1 --------/----- 4 ------
como definido no peimeiro exemplo.

Para cadastrar editar , esta beleza , faço o cadastro de varias analises de uma vez ao cadastrar o produto.
Desde já agradeço a ajuda de todos e peço desculpa pelo post longo, apenas tentei detalhar minha dúvida para uma melhor compreenção.
:shock
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17395
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Chave estrangeira

02-09-2009 10:13

Entendi mais ou menos, uma subconsulta dentro de outra, não resolveria?

Porque você poderia criar uma função, ele pegaria o ID do produto atual e na função faria a consulta e retornaria os dados referentes.
0
Tem um script legal em HTML, CSS, PHP, HTML, JavaScript, jQuery? Poste e compartilhe com os usuários do fórum :rock:
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 390
Sexo: Masculino
Localização: VOLTA REDONDA RJ
Contato:

Chave estrangeira

02-09-2009 15:13

Vamos lá... desde já agradeço a ajuda.

Pelo que andei lendo na internet sobre chave estrangeira e relacionamento entre tabelas , entendo que :

No meu caso é do tipo muitos para muitos, pois uma analise pode ter varios produtos , quanto um produto tera varias analises , certo.
logo conforme o entendimento que tive teria de fazer uma mudança na minha tabela produtos, tirando a coluna analise, ficando desta forma :
id_prod - produto_prod - fab_prod

Mantendo a tabela analise como estava e criando a tabela de chaves estrangeiras onde guardaria os ids relacionados.
id_produto - id_analise
- id_prod ------ id_an -

quando eu falei que estava cadastrando e editando sem problema , estava cadastrando os id's das analises na coluna analise_pro da tabela produtos , logo como eu retirei esta coluna , aí vem a dúvida que eu realmente não consegui entender como fazer até agora , pois ao cadastrar um produto eu preciso cadastrar varias analises para este.

Aí é que esta o problema, como cadastrar desta forma?
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17395
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Chave estrangeira

02-09-2009 16:03

Uma vez postei algo que parece ser relacionado com isso, um item era cadastrado, e tinha um campo em forma de array, onde eram cadastrados vários itens no mesmo campo. Acho que você pode se basear nessa idéia, em uma coluna entra os vários itens que precisa para um único item.
0
Tem um script legal em HTML, CSS, PHP, HTML, JavaScript, jQuery? Poste e compartilhe com os usuários do fórum :rock:

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado