Clipper On Line • Ver Tópico - Relacionamentos em MySql
Mudar para estilo Clássico
Discussão sobre SQL
Postar uma resposta

Relacionamentos em MySql

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.

Relacionamentos em MySql

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

Relacionamentos em MySql

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.

Relacionamentos em MySql

04 Ago 2014 10:42

Olá!

Os links que postei acima não servem como exemplos?

Relacionamentos em MySql

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 ?

Relacionamento entre tabelas no banco

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.

Relacionamentos em MySql

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.

Relacionamentos em MySql

15 Dez 2014 16:29

Eu também aprendi e resolvi muita coisa através deste forum.

Relacionamentos em MySql

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...

Relacionamentos em MySql

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.

Relacionamentos em MySql

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:
Código:
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

Relacionamentos em MySql

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.

Relacionamentos em MySql

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.

Relacionamentos em MySql

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.

Código:
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;

Relacionamentos em MySql

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
Postar uma resposta