eriksonsr 0 Denunciar post Postado Maio 23, 2014 Bom dia, gostaria de saber a opinião de vocês sobre qual a forma melhor e mais correta de se fazer uma consulta envolvendo 3 tabelas, por exemplo, vamos supor que eu tenha a tabela alunos composta pelos campos id_aluno(pk), nome, idade, a tabela cursos composta pelos campos id_curso(pk), nome_curso e a tabela matriculas, composta pelos campos id_aluno(fk), id_curso(fk).Supondo que eu tenha de fazer a seguinte consulta, todos os alunos com idade entre 18 e 25 anos que fizeram o curso Y, qual seria a melhor forma de fazer isto:A) Fazer um inner join entre as tabelas aluno, matriculas, alunos e em cima disto fazer a consulta; B) Selecionar o id e nome dos alunos com idade entre 18 e 25 anos na tabela alunas, selecionar o id e o nome do curso Y, guardar estas informações em vetores na minha programação e então com bases nesses valores que estão nos vetores fazer uma consulta na tabela matriculas checando onde o id destes alunos com idade entre 18 e 25 anos é igual ao id do curso Y. Compartilhar este post Link para o post Compartilhar em outros sites
lokaodomau 61 Denunciar post Postado Maio 23, 2014 Geralmente eu faço no banco de dados tudo o que posso, o que eu não conseguir, passo pro código. Neste caso, eu faria a consulta, com INNER JOIN, afinal o banco de dados já irá retornar tudo o que é necessário... Compartilhar este post Link para o post Compartilhar em outros sites
Motta 645 Denunciar post Postado Maio 23, 2014 Não sendo uma base ENEM (zilhões de registros) resolvo no BD. Compartilhar este post Link para o post Compartilhar em outros sites
Motta 645 Denunciar post Postado Maio 24, 2014 A três horas do fim do prazo, Enem já tem 9,1 milhões de inscritos Em bases deste tamanho alguns cuidados são precisos, trabalhar com arrays etc, Em bases comuns, complicação desnecessária em minha mui modesta opinião. Compartilhar este post Link para o post Compartilhar em outros sites
Motta 645 Denunciar post Postado Maio 24, 2014 Foram 9.519.827 inscritos. Compartilhar este post Link para o post Compartilhar em outros sites
guidjos 65 Denunciar post Postado Maio 26, 2014 Além do tamanho do banco, é preciso entender quantas vezes a consulta vai ser feita e qual a arquitetura do servidor. Se forem muitos registros e os clientes acessarem o banco pela Internet, por exemplo, é inviável retornar todos os dados do banco pra processamento do lado deles. Se essa consulta realmente for um gargalo pra você, cirar índices específicos pra ela pode resolver o problema. Compartilhar este post Link para o post Compartilhar em outros sites