RELACIONAMENTO ENTRE TABELAS NO MYSQL?

SERGIO 23/12/2009 16:46:28
#330395
Olá pessoal eu estou fazendo um projeto só para estudos e quero usar o mysql mais gostaria de saber como eu faço o relacionamento entre tabelas pois não achei essa opção no mysql administrator são 3 tabelas com suas chaves primárias ae ficaria assim
cliente(CodigoCliente) --- > Movimento(CodigoCliente) 1N1
filmes(CodigoFilme) ---> Movimento(CodigoFilme) 1n1
como faço isso no mysql? e minhas tabelas são do tipo innodb
NETMANIA 24/12/2009 09:17:54
#330425
Resposta escolhida
Você quer dizer a parte de integridade onde evita que quando o alguem tente apaguar algum registro da tabela de clientes e este estiver algum filme associado deixe a sua base inconcistente? Se for isso, use o comando abaixo:

ALTER TABLE 'cliente'
ADD CONSTRAINT 'Movimento_ibfk_1' FOREIGN KEY ('CodigoCliente') REFERENCES 'Movimento' ('CodigoCliente') ON DELETE NO ACTION ON UPDATE NO ACTION;

ALTER TABLE 'filmes'
ADD CONSTRAINT 'Movimento_ibfk_2' FOREIGN KEY ('CodigoFilme') REFERENCES 'Movimento' ('CodigoFilme') ON DELETE NO ACTION ON UPDATE NO ACTION;

O que vai acontecer se alguem tentar apagar algum registro da tabela de filmes ou cientes caso tenha movimento, o MySQL irá disparar um alerta informando que existem restrições no banco.

Uma coisa muito importante!

Para os comandos acioma funcionarem, você deverá ter os campos CodigoFilme e CodigoCliente identicos nas duas tabelas (tipo de campo, tamanho) por que se não o MySQL vai reportar erro, outra coisa.

Espero poder ter ajudado no seu problema.
Tópico encerrado , respostas não são mais permitidas