Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

uma duvida sobre o entity

ola , a minha duvida por exemplo eu tenho a classes alunos e tenho uma outra alunos aprovados, alunos possuem provas entao eu faço , so exemplo: alunos.hasmany(provas), ao fazer alunosaprovados que herda de alunos, eu preciso fazer alunosaprovados.hasmany(provas) de novo?

3 respostas
solução!

Olá Luan, tudo bem?

Não entendi muito bem como funciona essa parte de Alunos e AlunosAprovados, mas por ter praticamente as mesmas propriedades, e também as provas, não seria mais fácil colocar a propriedade booleana Aprovado em aluno para distinguir? Assim, você tem apenas uma tabela de alunos e apenas ela acessa a tabela de provas.

No aguardo!

pode cre , seria melhor mesmo, mas eu tbm queria guardar a media final do aluno, seria legal eu ter uma contendo se ele esta aprovado ou nao junto com a media?

Então Luan, na verdade você precisa pensar na entidade aluno e determinar quais são os atributos dessa entidade. Aluno pode ter provas, média (somando o resultados das provas e dividindo pela quantidade de provas do semestre/ano) faltas, se ele está em qual semestre/ano está, e assim por diante.

Uma alternativa para dividir esses dados, é ter uma tabela de prova, que cada prova tem seu próprio Id, e tem como chave estrangeira o id do aluno. Uma tabela para alunos matriculados, uma para provas e fazer essa junção entre todas essas entidades. Nesta tabela de alunos matriculados terá o id do aluno (chave estrangeira), o id da tabela de provas (chave estrangeira), id da tabela de matérias (chave estrangeira) e valores como média, situação (aprovado, reprovado, recuperação e aguardo, para o semestre que não terminou).

A ideia é separar bem o que é cada objeto/entidade, exemplo aluno, semestre, matéria, prova entre outras tabelas para que os dados sejam bem separados, sem duplicar dados e apenas juntar os dados em tabelas específicas de junção para esses dados.

O aluno tem que ser aprovado em um certo semestre, em uma certa matéria com uma nota mínima. Não faz sentido criar uma tabela de aluno aprovado, porque o aluno ser aprovado é a junção de algumas situações. Ele pode ser aprovado em qualidade de software do 3º semestre, mas pode ter reprovado em desenvolvimento web, também do terceiro semestre.

Sugiro que dê uma lida neste artigo sobre normalização de banco de dados. Isso irá te ajudar a entender as melhores formas de como pensar no seu modelo de banco de dados.