Clipper On Line • Ver Tópico - Relacionamentos em MySql

Relacionamentos em MySql

Discussão sobre SQL

Moderador: Moderadores

 

Relacionamentos em MySql

Mensagempor Marcos » 01 Ago 2014 18:49

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
Avatar de usuário

Marcos
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 343
Data de registro: 20 Set 2003 09:16
Cidade/Estado: Cáceres/Mato Grosso
Curtiu: 6 vezes
Mens.Curtidas: 1 vez

Relacionamentos em MySql

Mensagempor alxsts » 01 Ago 2014 21:21

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)
alxsts
Colaborador

Colaborador
 
Mensagens: 2195
Data de registro: 12 Ago 2008 15:50
Cidade/Estado: São Paulo-SP-Brasil
Curtiu: 13 vezes
Mens.Curtidas: 151 vezes

Relacionamentos em MySql

Mensagempor Marcos » 04 Ago 2014 08:33

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
Avatar de usuário

Marcos
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 343
Data de registro: 20 Set 2003 09:16
Cidade/Estado: Cáceres/Mato Grosso
Curtiu: 6 vezes
Mens.Curtidas: 1 vez

Relacionamentos em MySql

Mensagempor alxsts » 04 Ago 2014 10:42

Olá!

Os links que postei acima não servem como exemplos?
[]´s
Alexandre Santos (AlxSts)
alxsts
Colaborador

Colaborador
 
Mensagens: 2195
Data de registro: 12 Ago 2008 15:50
Cidade/Estado: São Paulo-SP-Brasil
Curtiu: 13 vezes
Mens.Curtidas: 151 vezes

Relacionamentos em MySql

Mensagempor Marcos » 04 Ago 2014 11:08

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 de usuário

Marcos
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 343
Data de registro: 20 Set 2003 09:16
Cidade/Estado: Cáceres/Mato Grosso
Curtiu: 6 vezes
Mens.Curtidas: 1 vez

Relacionamento entre tabelas no banco

Mensagempor 09466261000176 » 14 Dez 2014 14:18

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 de usuário

09466261000176
Usuário Nível 1

Usuário Nível 1
 
Mensagens: 39
Data de registro: 19 Mar 2014 15:50
Cidade/Estado: lorena sp
Curtiu: 0 vez
Mens.Curtidas: 0 vez

Relacionamentos em MySql

Mensagempor Jairo Maia » 14 Dez 2014 23:52

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)
Avatar de usuário

Jairo Maia
Colaborador

Colaborador
 
Mensagens: 2440
Data de registro: 16 Ago 2010 13:46
Cidade/Estado: Campinas-SP
Curtiu: 294 vezes
Mens.Curtidas: 264 vezes

Relacionamentos em MySql

Mensagempor Ivone Lopes da Silva » 15 Dez 2014 16:29

Eu também aprendi e resolvi muita coisa através deste forum.
Ivone Lopes da Silva
Colaborador

Colaborador
 
Mensagens: 52
Data de registro: 23 Out 2004 21:57
Cidade/Estado: São João da Boa Vista/SP
Curtiu: 2 vezes
Mens.Curtidas: 3 vezes

Relacionamentos em MySql

Mensagempor rochinha » 15 Dez 2014 18:05

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 fivolution@hotmail.com. Agradecido.

@braços : ? )

A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
Avatar de usuário

rochinha
Membro Master

Membro Master
 
Mensagens: 4220
Data de registro: 18 Ago 2003 20:43
Cidade/Estado: São Paulo - Brasil
Curtiu: 509 vezes
Mens.Curtidas: 183 vezes

Relacionamentos em MySql

Mensagempor rochinha » 15 Dez 2014 21:38

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 fivolution@hotmail.com. Agradecido.

@braços : ? )

A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
Avatar de usuário

rochinha
Membro Master

Membro Master
 
Mensagens: 4220
Data de registro: 18 Ago 2003 20:43
Cidade/Estado: São Paulo - Brasil
Curtiu: 509 vezes
Mens.Curtidas: 183 vezes

Relacionamentos em MySql

Mensagempor rochinha » 16 Dez 2014 02:25

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:
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 fivolution@hotmail.com. Agradecido.

@braços : ? )

A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
Avatar de usuário

rochinha
Membro Master

Membro Master
 
Mensagens: 4220
Data de registro: 18 Ago 2003 20:43
Cidade/Estado: São Paulo - Brasil
Curtiu: 509 vezes
Mens.Curtidas: 183 vezes

Relacionamentos em MySql

Mensagempor alxsts » 16 Dez 2014 10:33

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)
alxsts
Colaborador

Colaborador
 
Mensagens: 2195
Data de registro: 12 Ago 2008 15:50
Cidade/Estado: São Paulo-SP-Brasil
Curtiu: 13 vezes
Mens.Curtidas: 151 vezes

Relacionamentos em MySql

Mensagempor Itamar M. Lins Jr. » 19 Dez 2014 00:48

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.
Avatar de usuário

Itamar M. Lins Jr.
Colaborador

Colaborador
 
Mensagens: 3734
Data de registro: 30 Mai 2007 11:31
Cidade/Estado: Ilheus Bahia
Curtiu: 129 vezes
Mens.Curtidas: 192 vezes

Relacionamentos em MySql

Mensagempor dbsh » 24 Dez 2014 16:25

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

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 de usuário

dbsh
Usuário Nível 2

Usuário Nível 2
 
Mensagens: 69
Data de registro: 14 Jul 2004 14:19
Cidade/Estado: ES
Curtiu: 2 vezes
Mens.Curtidas: 9 vezes

Relacionamentos em MySql

Mensagempor rubens » 09 Abr 2015 15:01

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ê ???"
Avatar de usuário

rubens
Colaborador

Colaborador
 
Mensagens: 1448
Data de registro: 16 Ago 2003 09:05
Cidade/Estado: Nova Xavantina - MT
Curtiu: 69 vezes
Mens.Curtidas: 94 vezes

Próximo



Retornar para SQL

Quem está online

Usuários vendo este fórum: Nenhum usuário registrado online e 1 visitante


Ola Amigo, espero que meu site e forum tem lhe beneficiado, com exemplos e dicas de programacao.
Entao divulgue o link da Doacao abaixo para seus amigos e redes sociais ou faça uma doacao para o site forum...
MUITO OBRIGADO PELA SUA DOACAO!
Faça uma doação para o forum
cron
v
Olá visitante, seja bem-vindo ao Fórum Clipper On Line!
Efetue o seu login ou faça o seu Registro