Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Jugleni Jr

relacionamento entre tabelas (MySQL) parte2

Recommended Posts

Agora preciso saber:

 

Tenho uma tabela para cadastra empresas,

outra para cadastra seus produtos,

outra para cadastra seus funcionários.

 

Sendo que um empresa pode ter mais de um produto e funcionário.

Mais o produto só poderá ser daquela empresa.

O funcionário poderá trabalhar em mais de um empresa.

 

Confira o fluxograma abaixo:

 

 

Imagem Postada

 

No fluxograma não este ligado o funcionário com a tabela mais eu preciso que esteja!

como faço este relacionamento no código do mysql?

 

 

 

 

Atenciosamente,

 

Jugleni J. Krinski Jr

Compartilhar este post


Link para o post
Compartilhar em outros sites

nas tabelas produto e funcionários, inclua o campo emp_id.Aí sim é possivel saber que ambos pertecem a determinada empresa.Ao salvar tanto produto como funcionário, você tem q ter (numa variável por exemplo) o código da empresa que está criando o cadastro, e gravar este código nas tabelas.+ tarde será bem fácil retornar os registros pertencentes a empresa.tendeu?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Entendi, valeu!Só mais uma coisa:Quando vou "criar" estas tabelas relacionadas qual o comando que devo utilizar para citar que o campo emp_id vem de outra tabela?Create table.....;você poderia me dar um exemplo?

Compartilhar este post


Link para o post
Compartilhar em outros sites

CREATE TABLE produto (

                      ...

                      INDEX (emp_id, prod_id),

                      [B]FOREIGN KEY[/b] (emp_id)

                        REFERENCES empresa(emp_id)

)

No script p/ criar a tabela.

FOREIGN KEY (nome_do_campo_da_tabela_atual)

REFERENCES outra_tabela (campo_da_outra_tabela)

 

Caso a tabela já tenha sido criada:

ALTER TABLE produto ADD FOREIGN KEY (emp_id) REFERENCES empresa(emp_id)

Mas os campos devem ser do mesmo tipo/tamanho, ok?

 

P/ uma melhor referencia >> http://www.mysql.com/doc/en/InnoDB_foreign...onstraints.html

 

:D

Compartilhar este post


Link para o post
Compartilhar em outros sites

Outra duvida:

 

como faço para fazer referencia a dois campos de um so vez:

 

 INDEX (subcatgarq_id,user_id),  FOREIGN KEY (subcatgarq_id)  REFERENCES subcatg_arq(subcatgarq_id)  FOREIGN KEY (user_id)  REFERENCES usuario(user_id)

pois assim não esta funcionando!

 

Obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ok, consegui...

 

INDEX (product_category, product_id),                        FOREIGN KEY (product_category, product_id)                        REFERENCES product(category, id)                        ON UPDATE CASCADE ON DELETE RESTRICT,                        INDEX (customer_id),                        FOREIGN KEY (customer_id)                        REFERENCES customer(id)                         ) TYPE=INNODB;

o que seguinifica "ON UPDATE CASCADE ON DELETE RESTRICT"???

Compartilhar este post


Link para o post
Compartilhar em outros sites

ON UPDATE CASCADE ON DELETE RESTRICT

rapaz...até agora não usei e naum me aprofundei neste método.mas teoricamente é q quando os registros da referência (c naum me engano o evento ocorre na tabela primária) um dos 2 são executados p/ cada registro relacionado.qdo houver um update na tabela primária na referência todos os registros da outra tabela sofrem alteração. c naum me engano é isso.o on delete restrict não sei dizer... :D fico devendo essa :angry: :P see ya

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu só posso te agradecer de montão, pois você's só tem me ensinado, agora estou dando uma estudada nas funções do MySQL pois pretendo me aprofundar na rotinas SQL.Ok amigo muito obrigado... Atenciosamente,Jugleni J. Krinski Jr

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá turma,

 

Só uma informação, e com o comando INNER JOIN, nao daria pra fazer relacionamentos nao?

ex:

SELECT Vendas.CodVenda, Funcionarios.NomeFunc, Produtos.Produto, Vendas.DataVendaFROM Produtos INNER JOIN (Funcionarios INNER JOIN Vendas ON Funcionarios.CodFunc = Vendas.CodFunc) ON Produtos.CodProduto = Vendas.CodProduto;

Grato.

Compartilhar este post


Link para o post
Compartilhar em outros sites

e com o comando INNER JOIN, nao daria pra fazer relacionamentos nao?

sim, mas isso seria usando qdo montar uma consulta, poderia utilizar LEFT JOIN, RIGHT JOIN. mas só em consultas.no caso tratado neste tópico é a integridade dos dados, das tabelas.mas bem lembrado cara. <_< []'s

Compartilhar este post


Link para o post
Compartilhar em outros sites
sim, mas isso seria usando qdo montar uma consulta, poderia utilizar LEFT JOIN, RIGHT JOIN. mas só em consultas.

mas bem lembrado cara. :)

 

[]'s

Opa, vleu o intuito é compartilhar informação e um ajudando o outro! :(

 

Fiquem com Deus!

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.