Modelagem de Banco de Dados

17 respostas
sql
M

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?

17 Respostas

J

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;
D

@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.

M

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

J

Realmente @darlan_machado… não tinha percebido.

J

Acho que poderia criar-se uma tabela de pagamentos

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

D

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

M

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…

M

Pessoal pelo que me passaram entendi isso:

Alguns atributos acho que estão errados rsrs.

Me ajudem ‘-’

D

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

M

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:

D

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é?

M

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.

D

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

D

Relendo as regras, eu faria assim

image

M

Boa Tarde @darlan_machado,

image

Caminho Certo?

Obs: Valor da tabela nivel vou trocar para INT.

D

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.

M

Com as alterações:

image

Criado 30 de agosto de 2018
Ultima resposta 30 de ago. de 2018
Respostas 17
Participantes 3