Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá, boa tarde!
Gostaria de esclarecer uma dúvida que mesmo pesquisando um pouco não obtive uma resposta.
Quando se usa FOREING KEY para relacionamento de tabelas já não é necessário o uso de JOIN?
Ou uma coisa não tem relação com a outra?
Porque se for desse modo como eu estou pensando, ficaria mais simples escrever as consultas.
Se alguém puder me explicar isso de forma simples...
FOREIGN KEYS servem exclusivamente (alguem me corrija se estiver errado) para manter a integridade dos dados no seu BD...
Imagine que você tenha 2 tabelas, uma com registro de carros e outro de marcas...
Imagine agora que você apague da tabela de marcas o registro 'Chevrolet', mas na tabela de carros ainda existam os carros 'Corsa', 'Vectra'...
Quando for procurar pela marca desses carros, não encontrará...
Uma FOREIGN KEY impediria isso de acontecer... Se você tentar excluir Chevrolet da tabela de marcas, ou ela apaga todos os registros da tabela carros que estejam relacionados a Chevrolet ou simplesmente não te deixa apagar, emitindo um erro...
Não, uma coisa não está diretamente a outra, pode-se fazer um join em tabelas não relacionadas, não é o usual mas é possível.