Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

rogerss_7

Modelagem, relacionamento etc.

Recommended Posts

Gente preciso de alguns conselhos sobre esta modelagem:

 

Tenho três tabelas:

 

tb_grupo:

id | nome |

1 | Administradores |

2 | Parceiros |

 

tb_regiao:

id | nome |

1 | Porto Alegre |

2 | São Paulo |

3 | Belo Horizonte |

4 | etc..... |

5 | etc..... |

6 | etc..... |

 

tb_usuarios:

id | nome | login | senha | grupo_id | regiao_id |

1 | Roger | roger | 123 | 1 | 1 |

2 | Pedro | pedro | 123 | 2 | 2 |

3 | Johnn | john | 123 | 2 | 3 |

4 | Maria | mary | 123 | 2 | 2 |

 

De que maneira modelar estas de forma que:

 

QUESTÃO: tb_usuarios: receberá as id's vindas de tb_grupo e tb_regiao, sendo que quando alterar tb_grupo e tb_regiao, será, automaticamente, alterada tb_usuarios.

 

OBS.: Já tenho as tabelas montadas em MyISAM, só devo transformar em InnoDB, mas não sei quais.

 

Acho que faço isso com Chave estrangeira, correto?

 

Não sei NADA de fusão entre tabelas, gostaria, humildemente, que me explicassem como fazê-lo e se possível dar detalhes.

 

Agradeço mesmo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

É isso aí, todas as tabelas terão que ser InnoDB.

E sim, você irá usar chaves estrangeiras com as devidas constraints.

FOREIGN KEY grupo_id REFERENCES id(tb_grupo) ON UPDATE CASCADE ON DELETE RESTRICT

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá marcio.sfs, obrigado por atender meu pedido, como disse, não sei nada de chave estrangeira, não sei como alterar/incrementar isso que tu falou na minha tb_grupo via phpmyadmin.

 

Obs.: A tb_regiao está sendo ligada também?

 

Perdoe eu não conhecer isso.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você adiciona os constraints no comando que cria a tabela, ou no alter table (nunca utilizei neste caso).

E, sim, região deve ser ligado desta forma também, um constraint para cada chave estrangeira.

Abraço.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara fiz o seguinte, de acordo com o que tu me explicou, veja se está correto:

 

ALTER TABLE `tb_usuarios` ADD CONSTRAINT `fk_grupo` FOREIGN KEY (`grupo_id`) REFERENCES `tb_grupo` (`id`) ON UPDATE CASCADE ON DELETE RESTRICT

Uma pergunta, aí acima faço a alteração da tabela tb_usuarios e digo que ela herdará a chave estrangeira do tb_grupo, correto?

 

Como eu faço pra mesma (tb_usuarios) herdar também a da tabela tb_regiao? O comando deveria ser dado junto?

 

A de cima aí já está funcionando, já uns testes e tudo ok.

 

Abraços.

Compartilhar este post


Link para o post
Compartilhar em outros sites

É só repetir o alter ai, adicionando a constraint agora para a chave que você quer.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vlw marcio, vou te dizer heim, se não é cara pedir ajuda pra pessoas de outros foruns, subforuns, os carinhas daqui são paradão heim.

 

Vlw Marcio, tu não sabe como me ajudou, abração cara.

Compartilhar este post


Link para o post
Compartilhar em outros sites

É, como as chaves agora tem controle de referência, vai dar erro por causa das falhas de referencia.

Aconselho apagar e recriar as tabelas.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara a moral é o seguinte, por linha de comando não consegui, no phpMyAdmin tem uma parte que se chama Índices, fui ali e consegui criar mais um, no caso pra tabela tb_regiao.

 

Qualquer coisa te prendo o grito, ao menos, é claro, que tu se importe?

 

Abraços novamente.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.