Relacionamentos em MySql
Moderador: Moderadores
- Marcos
- Usuário Nível 3

- Mensagens: 355
- Registrado em: 20 Set 2003 09:16
- Localização: Cáceres/Mato Grosso
Relacionamentos em MySql
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.
-
alxsts
- Colaborador

- Mensagens: 3092
- Registrado em: 12 Ago 2008 15:50
- Localização: São Paulo-SP-Brasil
Relacionamentos em MySql
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
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)
Alexandre Santos (AlxSts)
- Marcos
- Usuário Nível 3

- Mensagens: 355
- Registrado em: 20 Set 2003 09:16
- Localização: Cáceres/Mato Grosso
Relacionamentos em MySql
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.
-
alxsts
- Colaborador

- Mensagens: 3092
- Registrado em: 12 Ago 2008 15:50
- Localização: São Paulo-SP-Brasil
Relacionamentos em MySql
Olá!
Os links que postei acima não servem como exemplos?
Os links que postei acima não servem como exemplos?
[]´s
Alexandre Santos (AlxSts)
Alexandre Santos (AlxSts)
- Marcos
- Usuário Nível 3

- Mensagens: 355
- Registrado em: 20 Set 2003 09:16
- Localização: Cáceres/Mato Grosso
Relacionamentos em MySql
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 ?
- 09466261000176
- Usuário Nível 1

- Mensagens: 39
- Registrado em: 19 Mar 2014 15:50
- Localização: lorena sp
Relacionamento entre tabelas no banco
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.
- Jairo Maia
- Moderador
- Mensagens: 2785
- Registrado em: 16 Ago 2010 13:46
- Localização: Campinas-SP
Relacionamentos em MySql
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.09466261000176 escreveu:Caro amigo quem sabe não ensina parece que aqui isso é regra.
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)
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

- Mensagens: 80
- Registrado em: 23 Out 2004 21:57
- Localização: São João da Boa Vista/SP
- Curtiram: 1 vez
- rochinha
- Administrador

- Mensagens: 4664
- Registrado em: 18 Ago 2003 20:43
- Localização: São Paulo - Brasil
- Contato:
Relacionamentos em MySql
Amiguinhos,
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...
.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.
@braços : ? )
A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
- rochinha
- Administrador

- Mensagens: 4664
- Registrado em: 18 Ago 2003 20:43
- Localização: São Paulo - Brasil
- Contato:
Relacionamentos em MySql
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.
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.
@braços : ? )
A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
- rochinha
- Administrador

- Mensagens: 4664
- Registrado em: 18 Ago 2003 20:43
- Localização: São Paulo - Brasil
- Contato:
Relacionamentos em MySql
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:
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.
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.IDCONDICAOOPS! 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.
@braços : ? )
A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
-
alxsts
- Colaborador

- Mensagens: 3092
- Registrado em: 12 Ago 2008 15:50
- Localização: São Paulo-SP-Brasil
Relacionamentos em MySql
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.
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)
Alexandre Santos (AlxSts)
- Itamar M. Lins Jr.
- Administrador

- Mensagens: 7928
- Registrado em: 30 Mai 2007 11:31
- Localização: Ilheus Bahia
- Curtiu: 1 vez
Relacionamentos em MySql
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.
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.
Itamar M. Lins Jr.
Relacionamentos em MySql
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
01001101011000010111001001100011011011110111001100100000010000010110111001110100011011110110111001101001011011110010000001000100011001010010000001000010011011110110111001101001
0101010001100101011011000011101000100000001010000011001000110111001010010011100100101101001110010011100000110100001100110010110100110101001100100011100100110000
- rubens
- Colaborador

- Mensagens: 1520
- Registrado em: 16 Ago 2003 09:05
- Localização: Nova Xavantina - MT
Relacionamentos em MySql
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 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ê
"