Relacionamentos em MySql

Forum sobre SQL.

Moderador: Moderadores

Avatar do usuário
Marcos
Usuário Nível 3
Usuário Nível 3
Mensagens: 355
Registrado em: 20 Set 2003 09:16
Localização: Cáceres/Mato Grosso

Relacionamentos em MySql

Mensagem por Marcos »

Gostaria de saber como fazer relacionamentos entre tabelas em MySql e HMG, digamos que tenho na Tabela de Clientes um campo Chamado Código da Filial, neste campo está gravado o código da filial que o cliente compra, neste caso seria um relacionamento de um para muitas, ou seja, um cliente poderia comprar em várias filiais, em outra hipótese, tenho uma tabela de cidades, e na tabela de clientes guardo o código da cidade do cliente, se os campos estiverem relacionados o BD não permitirá a exclusão da Cidade se esta gravada na tabela de clientes. Em DBF isto era feito no braço, já que o MySql o próprio nome diz (SGBD-Sistema Gerencial de Banco de Dados Relacional) gostaria que alguém me ajudasse com um exemplo. Também deve existir ferramentas para fazer estes relacionamentos e jogar apenas os códigos no HeidiSql. Aguardo a experiência dos nobres Colegas.
Atenciosamente,
_____________________________
Marcos Antonio da Silva
marcosilva90@hotmail.com
alxsts
Colaborador
Colaborador
Mensagens: 3092
Registrado em: 12 Ago 2008 15:50
Localização: São Paulo-SP-Brasil

Relacionamentos em MySql

Mensagem por alxsts »

Olá!

Estes relacionamentos são definidos no projeto lógico do banco de dados, onde são definidas todas as tabelas, suas chaves primárias (primary keys), chaves estrangeiras (foreign keys), índices, defaults, check constraints e outras coisas além das colunas. A este conjunto de relacionamentos dá-se o nome de integridade referencial

Encontrei um tutorial na internet, específico para MySQL e creio que poderá nos ajudar. Veja: How to Use MySQL Foreign Keys for Quicker Database Development
[]´s
Alexandre Santos (AlxSts)
Avatar do usuário
Marcos
Usuário Nível 3
Usuário Nível 3
Mensagens: 355
Registrado em: 20 Set 2003 09:16
Localização: Cáceres/Mato Grosso

Relacionamentos em MySql

Mensagem por Marcos »

Alguém poderia nos disponibilizar exemplos, pensei nesta possibilidade porque do que adiantaria usa SGBDR sem explorar seus recursos, isto seria o mesmo que usar DBF.
Atenciosamente,
_____________________________
Marcos Antonio da Silva
marcosilva90@hotmail.com
alxsts
Colaborador
Colaborador
Mensagens: 3092
Registrado em: 12 Ago 2008 15:50
Localização: São Paulo-SP-Brasil

Relacionamentos em MySql

Mensagem por alxsts »

Olá!

Os links que postei acima não servem como exemplos?
[]´s
Alexandre Santos (AlxSts)
Avatar do usuário
Marcos
Usuário Nível 3
Usuário Nível 3
Mensagens: 355
Registrado em: 20 Set 2003 09:16
Localização: Cáceres/Mato Grosso

Relacionamentos em MySql

Mensagem por Marcos »

Estive olhando, mas não entendo nada em Inglês, e se alguém tivesse um Exemplo pronto em Harbour com Mysql seria interessante disponibilizar para o Grupo, também precisamos de uma Ferramenta Case para fazer o relacionamento e gerar o código para o MySql. Alguém se habilita ?
Atenciosamente,
_____________________________
Marcos Antonio da Silva
marcosilva90@hotmail.com
Avatar do usuário
09466261000176
Usuário Nível 1
Usuário Nível 1
Mensagens: 39
Registrado em: 19 Mar 2014 15:50
Localização: lorena sp

Relacionamento entre tabelas no banco

Mensagem por 09466261000176 »

Caro amigo quem sabe não ensina parece que aqui isso é regra. Eu não sei,mas acho que deve haver alguma coisa tipo SET RELATION. As pessoas aqui deveriam aprender a descomplicar e passar as coisas, afinal compartilhar conhecimentos seria o objetivo proposto neste forum.
Avatar do usuário
Jairo Maia
Moderador
Moderador
Mensagens: 2785
Registrado em: 16 Ago 2010 13:46
Localização: Campinas-SP

Relacionamentos em MySql

Mensagem por Jairo Maia »

09466261000176 escreveu:Caro amigo quem sabe não ensina parece que aqui isso é regra.
Negativo! Rechaço com veemência sua afirmação! Se não fossem os compartilhamentos de informações de conhecimentos dos participantes deste fórum, não tenho dúvidas que hoje eu não seria mais um desenvolvedor. Pois sair do Clipper e hoje poder programar em Harbour usando todos os recursos disponíveis, não seria possível de minha parte sem a ajuda deste fórum. Portanto, se alguma coisa não foi resolvida para você em determinada situação, nem de longe está relacionado ao fato de que os participantes deste fórum RETEEM ou se NEGAM a compartilhar informações.
Abraços, Jairo
Harbour / Clipper 5.2e - Blinker 7
(Não respondo dúvidas por MP ou E-mail. Por favor, não encaminhe via mensagem privada ou e-mail, dúvidas que podem ser compartilhadas com todos no fórum)
Ivone Lopes da Silva
Colaborador
Colaborador
Mensagens: 80
Registrado em: 23 Out 2004 21:57
Localização: São João da Boa Vista/SP
Curtiram: 1 vez

Relacionamentos em MySql

Mensagem por Ivone Lopes da Silva »

Eu também aprendi e resolvi muita coisa através deste forum.
Avatar do usuário
rochinha
Administrador
Administrador
Mensagens: 4664
Registrado em: 18 Ago 2003 20:43
Localização: São Paulo - Brasil
Contato:

Relacionamentos em MySql

Mensagem por rochinha »

Amiguinhos,
compartilhar conhecimentos seria o objetivo proposto neste forum
.

O intuito do forum sempre foi este. O Toledo é que não imaginava a proporção que isto tomaria ao longo destes 15 anos. Muitos dos forenses aqui cadastrados já se foram para o eterno e os que continuam e os que virão darão andamento a todo o conhecimento angariado e postado aqui.

Como disse o caro colega Jairo Maia, talvez e até tenho certeza que você não teve uma resposta aqui no forum e eu sei disso porque ainda tenho pendentes pedidos de colegas de alguma ajuda e que não pude suprir pela falta de tempo.

Mas todas as valorosas contribuição dadas aqui, estão a um clique de serem encontradas.

Na pressa de resolver, é preferível solicitar a velha nova informação ao invés de fazer uma busca refinada pelo motor de pesquisa.

Eu mesmo, muitas vezes faço este tipo de busca aqui dentro, para relembrar, já que a memória não ajuda sozinha.

Talvez, se alguém ficou sem resposta, foi pela falta de tempo e não por desprezo.

Afinal, ninguém se cadastrou no forum esperando lucrar mensalmente com consultoria.

A ajuda que nosso amigo necessita é de cunho avançado e muitos que estão usando motores RDD para SQL estão usando o básico-do-básico para suprir seus clientes e conhecer estes motores.

Com certeza o amigo Marcos, obterá um feedback, assim como você também quando precisar.

Mas, a seu tempo...
OPS! LINK QUEBRADO? Veja ESTE TOPICO antes e caso não encontre ENVIE seu email com link do tópico para [url=mailto://fivolution@hotmail.com]fivolution@hotmail.com[/url]. Agradecido.

@braços : ? )

A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
Avatar do usuário
rochinha
Administrador
Administrador
Mensagens: 4664
Registrado em: 18 Ago 2003 20:43
Localização: São Paulo - Brasil
Contato:

Relacionamentos em MySql

Mensagem por rochinha »

Amiguinhos,

Eis uma velha ferramenta, que pode servir para entender estes relacionamentos.

MS Query

Infelizmente ferramentas CASE para este intuíto eu nunca cheguei a usar. Talvez estas te auxiliem neste aprendizado.

Database Architect
DB Visual Architect
MySQL Workbench
SQLite3 Database Manager

Lembro de ter feito relacionamentos pelo Access pois ele tem embutida esta característica. Com certeza a melhor ferramenta já se encontra em seu MS Office.

Não são muitas destas boas ferramentas que estão em português e muitas vezes, uma ótima ferramenta, free, pode além de Inglês estar em Espanhol ou até Russo. Então, arriscar nestas linguas é o minimo para nós uma necessidade nata.
OPS! LINK QUEBRADO? Veja ESTE TOPICO antes e caso não encontre ENVIE seu email com link do tópico para [url=mailto://fivolution@hotmail.com]fivolution@hotmail.com[/url]. Agradecido.

@braços : ? )

A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
Avatar do usuário
rochinha
Administrador
Administrador
Mensagens: 4664
Registrado em: 18 Ago 2003 20:43
Localização: São Paulo - Brasil
Contato:

Relacionamentos em MySql

Mensagem por rochinha »

Amiguinhos,

Para ilustrar o uso de relacionamentos em uma ferramenta vejam a imagem encontra-se anexa.

Exemplo do comando SQL da relação, obtido através do botão SQL existente na interface:

Código: Selecionar todos

SELECT pn.IDPEDIDO, clientes.IDCLIENTE, condicao.CONDICAO, pn.DATAPED, pn.NFE, pn.VALOR, pn.ICMS, pn.IPI, pn.IDNATUREZA
FROM `c:\5volution\gestao`\clientes.dbf clientes, `c:\5volution\gestao`\condicao.dbf condicao, `c:\5volution\gestao`\es.dbf es, `c:\5volution\gestao`\pn.dbf pn, `c:\5volution\gestao`\transp.dbf transp, `c:\5volution\gestao`\vendedor.dbf vendedor
WHERE pn.IDTRANSP = transp.IDTRANSP AND pn.IDFUNC = vendedor.IDFUNC AND pn.IDCLIENTE = clientes.IDCLIENTE AND pn.IDPEDIDO = es.IDPEDIDO AND pn.IDCONDICAO = condicao.IDCONDICAO
O único pecado de usar MSQuery com .DBF é que arquivos .FPT não são reconhecidos a não ser que o driver ODBC para FoxPRO esteja instalado.
Anexos
RELACION.png
OPS! LINK QUEBRADO? Veja ESTE TOPICO antes e caso não encontre ENVIE seu email com link do tópico para [url=mailto://fivolution@hotmail.com]fivolution@hotmail.com[/url]. Agradecido.

@braços : ? )

A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
alxsts
Colaborador
Colaborador
Mensagens: 3092
Registrado em: 12 Ago 2008 15:50
Localização: São Paulo-SP-Brasil

Relacionamentos em MySql

Mensagem por alxsts »

Olá!

Muito infeliz o comentário do colega, apesar de não me atingir. Creio que se aquilo fosse verdadeiro, seria a negação da existência deste fórum, que tem sido tão útil ao longo dos últimos 15 anos...

Os links que postei respondem a pergunta feita e servem como ponto de partida para . Ninguém é obrigado a saber inglês, embora seja muito importante em nossa área de atuação. Mas, se houvesse interesse, pelo menos uma tradução do Google ajudaria...

Quanto a desenvolver uma ferramenta case para criar as referências entre tabelas e mostrar o código de criação, seria reinventar a roda. O Heidi SQL tem esta funcionalidade. Basta apenas ter interesse e aprender a manusear a ferramenta. O problema é que alguns não se dispõem a isto. Querem apenas que alguém faça o serviço por eles próprios e lhes entregue tudo pronto.
[]´s
Alexandre Santos (AlxSts)
Avatar do usuário
Itamar M. Lins Jr.
Administrador
Administrador
Mensagens: 7928
Registrado em: 30 Mai 2007 11:31
Localização: Ilheus Bahia
Curtiu: 1 vez

Relacionamentos em MySql

Mensagem por Itamar M. Lins Jr. »

Rapaz tem tantos livros ai, ensinando essas coisas, a internet está lotada de exemplos.
SQL ISO não é apenas p/ MYSQL é para todos os SGBD que adotam a sintaxe.
Não é pago não são livros gratuitos.
Logo de cara, só na wikipedia tem algumas coisas importantes.
http://pt.wikipedia.org/wiki/SQL
A parte do harbour é só perguntar que quem souber a resposta irá responder.

Capitão Picard, não merece ser usado com um comentário desses!

Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Avatar do usuário
dbsh
Usuário Nível 3
Usuário Nível 3
Mensagens: 128
Registrado em: 14 Jul 2004 14:19
Localização: ES

Relacionamentos em MySql

Mensagem por dbsh »

Um pequeno exemplo de relacionamento entre tabelas MySQL, nao deixando excluir registro na tabela unidade, se já tiver movimento na tabela produto.

Código: Selecionar todos

CREATE TABLE `unidade` (
  `ID` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `DESCRICAO` varchar(250) DEFAULT NULL,
  `FRACIONAR` char(1) DEFAULT NULL,
  PRIMARY KEY (`ID`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=latin1;

CREATE TABLE `produto` (
  `ID` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `UNIDADE_PRODUTO` int(10) unsigned NOT NULL,
  `CODIGO` varchar(20) DEFAULT NULL,
  `DESCRICAO` varchar(250) DEFAULT NULL,
  `VALOR_VENDA` decimal(18,6) DEFAULT NULL,
  `QTD_ESTOQUE` decimal(18,6) DEFAULT NULL,
  `NCM` varchar(9) DEFAULT NULL,
  PRIMARY KEY (`ID`),
  KEY `FK_UNIDADE_PRODUTO` (`UNIDADE_PRODUTO`),
  CONSTRAINT `produto_ibfk_1` FOREIGN KEY (`UNIDADE_PRODUTO`) REFERENCES `unidade` (`ID`) ON DELETE NO ACTION ON UPDATE NO ACTION
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=latin1;
010011110010000001110011011101010110001101100101011100110111001101101111001000001110100100100000011000110110111101101110011100110111010001110010011101011110110101100100011011110010000001100001001000000110111001101111011010010111010001100101
01001101011000010111001001100011011011110111001100100000010000010110111001110100011011110110111001101001011011110010000001000100011001010010000001000010011011110110111001101001
0101010001100101011011000011101000100000001010000011001000110111001010010011100100101101001110010011100000110100001100110010110100110101001100100011100100110000
Avatar do usuário
rubens
Colaborador
Colaborador
Mensagens: 1520
Registrado em: 16 Ago 2003 09:05
Localização: Nova Xavantina - MT

Relacionamentos em MySql

Mensagem por rubens »

Rapaz... tava pesquisando sobre banco e caí nesta página...
Eu fico super indignado com um post destes...
Nunca, nunca deixei de receber uma ajuda ou qualquer informação neste fórum, seja de simples usuário aos moderadores.
Quantas vezes postei uma dúvida que foi respondida mais de uma vez até.
Fica aqui minha indignação com o colega e meus agradecimentos a todos os outros membros que participam do fórum ajudando uns aos outros.
Parabéns ao Toledo e ao restante dos membros...

Rubens
"Eu e minha casa servimos ao Senhor e você ???"
Responder