Iniciante: duvida se existe um relacionamento entre tabelas mysql ou se faz isso no java ?

Boa tarde a todos,

Estou aprendendo sobre os relacionamentos de tabelas e me surgiu uma duvida no seguinte cenario:

Quero cadastrar meus clientes via internet, eles por sua vez tem seus produtos, vendedores e assim por diante, ou seja os produtos de uma nao podem aparecer para as demais nem os seus vendedores.

Agora vem a duvida:
O relacionamento das tabelas no mysql podem controlar isso fazendo uma ponte entre o campo clientes.idcli para o campo vendedor.idcli no próprio mysql ou tenho que fazer isso com algum tipo de “filtro” via programação no java ?

Ao meu ver se existir um modo de fazer isso já no mysql do servidor vai deixar muito mais simples o programa via java, já que os “filtros” não serão necessários.

Obrigado pela atenção

Boa tarde, pensando numa relação entre clientes produtos e vendedores seria usual voce criar uma tabela intermediaria chamada “Venda” por exemplo, nela conteria fks de codigo do cliente, codigo do vendedor alem de um numero unico que identificaria essa venda á fins de integridade de dados… Além uma outra tabela “Itens_venda” que conteria dados dos produtos vendidos, forma de pagamento e etc… Na sua tela ela puxaria vendas where codigo do cliente = x…

1 curtida

Murilo, boa tarde, e obrigado pelas sugestões.

Sim, futuramente existira uma tela de vendas que interligara tudo, mas a minha duvida esta bem antes disso. Estou pensando em como deixar o relacionamento delas já pronto desde o inicio afim.

Por exemplo posso imaginar que existam 10 clientes/empresas com seus devidos vendedores e estoques relacionados, imagina que por um infeliz acidente na programação os registros de um abra para o outro e ele acabe tendo acesso a informações confidenciais, isso poderia gerar um grande problema alem de começar a desconfiar que o produto não seja seguro.

Então eu dei uma pesquisada na internet e vi uma imagens de bancos de dados relacionados entre si com linhas, ao meu ver eles estão ligados dentro do database mysql e não via programação. Isso evitaria bastante (e talvez totalmente) os problemas de acesso indevido pelo programa que vou fazer. Claro que ainda vou escrever alguns relacionamentos em relatórios mas to longe desse ponto.

Vou colocar um link aqui afim de me explicar melhor:

https://www.google.com.br/search?q=mysql+relacionar+tabelas&num=30&source=lnms&tbm=isch&sa=X&ved=0ahUKEwiXy6GPqfTaAhWCDpAKHfw_AowQ_AUICygC&biw=1024&bih=672

Abraços

Parceiro voce jamais deve confundir camada de persistencia com qualquer outra camada, pensando em um modelo estruturado de dados padrão MVC isso seria tecnicamente impossivel de acontecer, camada de persistencia garante a integridade de seus dados se bem relacionada, se existe uma empresa com 10 clientes cada cliente terá sua fk relacionada ao CODIGO_EMPRESA por exemplo, feito corretamente todos os relacionamentos o erro só podera acontecer na sua camada de visão, á qual voce pode errar o codigo na sua camada de Serviço responsavel pela logica do negocio exibindo dados inconsistentes aos seus clientes.
Enfim, procure por estudar á fundo MER, MLR e etc que voce jamais tera esse problema.

Exato, é isso que eu preciso de um relacionamento que funcione.

Voltando lá na pergunta do tópico rs o mysql faz isso certo ? O problema é que não estou localizando onde faz isso por dentro do myadmin, será que é necessário um outro aplicativo para montar este relacionamento ?

Voce pode fazer isso pelo java via Hibernate e ou jpa anotations, minhas tabelas e relacionamentos sao todas feitas via anotações, o “java” cria pra mim todas as entidades no banco.

Ótimo, muito bom saber que existe este recurso e qual aplicativo que possibilita.

Obrigado pela ajuda, vou estudar mais e aprender sobre estes dois que você me indicou

Abraços

Agora que eu entendi o que procurar aqui no http://localhost/phpmyadmin este recurso fica no botão mais (canto superior direito) e se chama desenhador.

Uma outra opcao que faz a mesma coisa fica na aba estrutura, botão relation view, onde você seleciona a tabela.campo que vai se conectar a outra tabela.campo

Se for 1:n (1 cliente tem vários vendedores) só precisa de uma fk na tabela de vendedores (fk faz o relacionamento com o cliente).
Isso é modelo entidade relacionamento.

Só vai criar tabela associativa em n:n.