Modelagem de Banco de Dados

Bom dia Pessoal,

Estou com uma atividade em Modelagem de Banco de dados queria uma ajuda de vocês de como começar e entende o caso. Não entendi muito bem como vou fazer os relacionamentos. Poderia da uma força ai?

Bom… no meu entendimento acho que seria mais ou menos assim:

Tabela Aluno(id, nome,fone, email);
Tabela oficina(id,nomeOficina, id_nivel, id_aluno);
Tabela nivel(id,nivel, id_valor);
Tavela valores(id, valor);

Um aluno pode se inscrever em apenas uma oficina;
Uma oficina pode ter varios alunos;
Uma oficina possui varios niveis;

1 curtida

@Jederson_Andre, não é viável fazer isso

pois isso limitaria cada oficina cadastrada a ter apenas um aluno, não é mesmo?
O correto é inserir a coluna da FK de oficina no aluno, restringindo sua participação em uma única oficina.

2 curtidas

E a questão dados dos alunos que já pagaram?

Realmente @darlan_machado… não tinha percebido.

1 curtida

Acho que poderia criar-se uma tabela de pagamentos

Tabela pagamento(id,dataPg, dataLancamentoRegistro, id_aluno, id_curso, id_nivel);

1 curtida

Adiciona uma coluna na tabela aluno, onde você insere ‘P’ se pagou e pode deixar nulo ou ‘N’ caso não.

1 curtida

Eu acho que deveria usar do @Jederson_Andre porque vou ter mais dados como data de pagamento. Se eu adicionar somante uma coluna não teria como fazer por mês… Isso futuramente. Então pessoal com FK ficaria como…

1 curtida

Pessoal pelo que me passaram entendi isso:

Alguns atributos acho que estão errados rsrs.

Me ajudem ‘-’

Cara, não leu o que eu comentei sobre oficina com FK para aluno?

1 curtida

A certo, perguntei antes como ficaria então essa FK? Sou bem iniciante mesmo…
Me de um exemplo de como ficaria por favor. :slight_smile:

Seguindo o que você apresentou, quando você for cadastrar uma oficina, terá algo como

INSERT INTO OFICINA (idoficina, nomeoficina. id_nive, id_aluno) VALUES (1, 'Oficina 1', 1, 'João da Silva');

Se você precisar adicionar mais alunos que se cadastraram para a oficina, isso ficará como? Você acabará duplicando os dados da tal oficina, não é?
Agora, se você segue a minha abordagem, colocando a FK de oficina no aluno, esse problema não existe, afinal, tem uma regra que diz que cada aluno só pode se inscrever em uma única oficina, né?

No exercício não consta parte de inscrição, mas na sua abordagem bem melhor deu para eu entende, agora quero sabe como colocar isso na modelagem.

1 - tira a coluna aluno_id da tabela oficina
2 - Cria uma coluna chamada oficina_id com o mesmo tipo de dado da coluna idOficina da tabela oficina.
Aí você resolveu essa parte

Relendo as regras, eu faria assim

image

1 curtida

Boa Tarde @darlan_machado,

image

Caminho Certo?

Obs: Valor da tabela nivel vou trocar para INT.

1 - Prefira usar valores com pontos flutuantes para valores, no caso, float.
2 - Você não representou a relação entra oficina e nivel, é uma relação 1 : N, cada oficina está associada a um único nível, mas, cada nível pode ser conectado com mais de uma oficina.

Com as alterações:

image