Ir para conteúdo

POWERED BY:

Arquivado

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

#VemPraRua

query ou não ?

Recommended Posts

Considere um banco de dados com as colunas:

---------------------------------------

NOME | RGM | CURSO | IDADE

---------------------------------------

Agora imagine que tenho mais de 1000 cursos diferentes nesse bd.

 

Tenho que obter grupos de alunos (linhas do bd) que façam o mesmo curso e fazer alguma ação com esse grupo, somar suas idades, por exemplo.

 

Vou executar 1000 query's. Isso é correto ?

 

Ou o ideal é obter todas as linhas de uma vez e ir iterando pela coluna 'CURSO' e pegando todos que façam o curso x1, x2...x100 ? Ai serão 1000 iterações por curso (se não pensar em nenhuma optimização)

 

Enfim o que devo fazer ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vou receber tudo de um arquivo .csv passar para uma tabela (os nomes dos cursos são totalmente desconhecidos até que o usuário faça upload do .csv). Então não. São nomes mesmo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ao meu ver (acredito que de muitos) . Você deveria ter ao menos 2 tabelas. Uma para os cursos e outra dos alunos. O campo curso da tabela alunos ser uma chave estrangeira na tabela cursos.

Você lê todos os campos curso(do csv ), fazendo inserts na tabela cursos. E pensa numa lógica para o mesmo na tabela alunos.

Compartilhar este post


Link para o post
Compartilhar em outros sites

não entendi muito bem qual a duvida ou dificuldade..

 

Se pretende consultar, por exemplo, os alunos de um curso X que tenham entre 18 e 22 anos de idade, basta fazer uma simples consulta.:

 

select nome, curso, idade from tabela
where curso = 'nome do curso' 
and idade >= 18 and idade <= 22

 

 

Sobre a tabela, não sei se isso que apresentou é a modelagem, mas está muito ruim se essa for a modelagem...

 

Já começa "errado" pelo campo "idade"..

Não se deve armazenar a idade e sim a data de nascimento pois a idade muda a cada ano..

Por meio da data de nascimento vc calcula a idade.

 

 

Outro ponto, está misturando a tabela de curso com cadastro do aluno.

 

O certo é criar um modelagem flexível, falando numa linguagem informal..

Pois imagine se precisar modificar o nome do aluno, terá que modificar o nome em todas as tabelas onde possuir o nome do aluno.. é redundante e muito mais complicado.

 

exemplo

 

 

person 
    id
    person_name
    person_surname
    person datebirth


courses
    id
    course_title


person_courses
    id
    course_id
    person_id

 

Como pode ver, nesse exemplo acima, a tabela person e courses não se enxergam.

A tabela person_courses é quem faz a ligação entre elas.

 

 

 

 

 

off: o plural de query é queries..

Compartilhar este post


Link para o post
Compartilhar em outros sites

Obrigado pela resposta !

 

Com relação a modelagem concordo plenamente, não pretendo guardar os dados...funciona assim o usuário envia um arquivo .csv eu passo para o banco gero um relatório exporto o relatório depois deleto a tabela. Não quero armazenar permanentemente e nem existirá edições futuras.

 

A questão é que dentro deste arquivo (excel) tenho 1000 cursos preciso trabalhar com 1 curso por vez no meu código a questão é se posso fazer 1000 queries? Faço uma query trabalho com o curso x1, faço outra trabalho com o curso x2 e assim por diante até x1000.

Compartilhar este post


Link para o post
Compartilhar em outros sites

acho que entendi, mas está muito confusa a sua explicação.

 

o que vc pretende fazer é importar os dados de um csv para dentro do mysql, certo ?

 

então nesse csv encontra-se os dados nesse formato que vc postou no primeiro post, certo ?

 

então a sua dúvida é se pode gerar as "mil" queries.. é isso?

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.