3
respostas

Dúvida Bando de Dados - UML

Estou praticando e montando um pequeno sistema com cadastro de alunos/ salas de aula / salas de coffee break. Eis que fiquei em dúvida qual a melhor forma de criar essa base.

Tabela Alunos        Tabela Sala Aula        Tabela Sala Café
id                    id                      id
Nome                  nome                    nome
Email                 capacidade              capacidade
Senha

Qual a melhor forma de vincular o aluno em ambas as tabelas? Criar uma quarta tabela que irá receber todos os IDs ou criar em "Sala Aula" e "Sala Café" o ID_aluno como foreign key?

Obrigado desde já pela ajuda!

3 respostas

Oii Renan, tudo bem?

O interessante e também é uma boa prática você adicionar o ID_aluno como foreing key na tabela sala café e sala de aula. Isso vai dar um up nas suas consultas e mais fácil de leitura.

Espero ter ajudado. Qualquer coisa é só falar, tá bom? :)

Entendi. Obrigado pela recomendação. Essa "brincadeira" acabou se tornando algo mais complicado que imaginei. Acabei que criei 2 novas tabelas para interligar tudo:

alunos_Scafe            alunos_Saula
 id                      id
 id_aluno              id_aluno
 id_Scafe              id_Saula

Utilizando a query abaixo

SELECT salas_aula.nome, alunos.nome, alunos.sobrenome
FROM alunos 
INNER JOIN alunos_saula USING (id)
INNER JOIN salas_aula USING (id)

consigo trazer a sala e qual aluno está cadastrado na mesma por exemplo. Devo então incluir o ID_aluno nas tabelas de "Sala de Aula" e "Sala de Café" também?

Novamente agradeço a ajuda!

Oii Renan, desculpa pela demora.

Nesse caso, você pode excluir essas tabelas que criou para interligar tudo e adicionar o ID_aluno como foreing key na tabela sala café e sala de aula.

Dessa forma que você fez, perde muita performance no seu banco de dados e complica as suas consultas.

Se precisar de ajuda para isso, só me falar, tá bom? :)