Ir para conteúdo

POWERED BY:

Arquivado

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

Eliseu M.

[Resolvido] Resumir banco de dados

Recommended Posts

E aí pessoal, beleza?

 

Há muito tempo estou pensando como fazer o banco de dados de um boletim escolar, porém, ainda sou newba neste assunto :( Agora estou fazendo curso técnico, e fico no máx. 1 hora por dia no PC, aí é osso :( E só vou começar a aprender BD no semestre que vem.

 

Então... eu criei uma tabela notas onde há o RA do aluno e os campos de nota de todas as matérias, de cada bimestre e também de recuperação. O problema é que ficou enorme, são umas 14 matérias e, além disso, são 4 bimestres e ainda há a recuperação =[

 

Teria algum modo de eu inserir, por exemplo, no campo mat (de Matemática), algo como: 8.5; 10; 9; 6;, as quais seriam as notas do aluno, em ordem de bimestre? Isso resumiria muiiitooo o meu banco de dados. Eu quero colocar múltiplos valores no campo, mas quero que eles sejam independentes, ou seja, se o professor for editar, ao invés de editar tudo, só editará um, há como?

 

Valeu, aguardo ajuda :D

Compartilhar este post


Link para o post
Compartilhar em outros sites

estude: normalização de dados

 

você precisará de tabelas auxiliares que conterão várias linhas para mostrar a 'mesma informação'. (id aluno/nota/id_materia)

poste como você modelou, para que consigamos sugerir algo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Criei duas tabelas, a primeira foi alunos:

 

ID
RA
nome
ano
A outra foi notas:

 

ID
RA
lpg1
lpg1r
lpg1t
lpg2
lpg2r
lpg2t
lpg3
lpg3r
lpg3t
lpg4
lpg4r
lpg4t
lpg = Língua Portuguesa Gramática

Os números são os bimestres.

r e t são 'recuperação' e 'trabalhos', respectivamente.

 

Desta forma, eu faria o SELECT através do RA.

Imagine isso com 14 matérias, o tamanho da bagaça =[

 

// Seria melhor eu criar outra tabela materias?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Como disse o William, estude Normalização. Pra esse BD que você está querendo fazer, faça uma tabela pra alunos, outra para matérias e outra para notas. Ficaria assim:

 

*Alunos*
(PK) RA (você pode usar o próprio RA como chave primária, não precisa de ID)
nome
ano

*Matérias*
(PK) ID_materia
materia

*Notas*
(PK) RA
(PK) ID_materia
[Chave composta]

bimestre
nota
reforço (campo booleano)
trabalho (campo booleano)

Bem melhor assim né??

 

obs.: se tiver algum erro ou estiver faltando me avisa que eu mudo, fiz rapidinho =)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Beleza... eu entendi, quase cheguei a criar deste modo, o problema é esse: onde vou inserir as notas? Em qual campo? Como vou fazer o select?

 

Não estou entendendo como vários valores podem ficar numa tabela tão simples, não entendi como se faz a inserção de dados =[

 

Exemplo:

 

Tenho a matéria pt de Português, o aluno com RA 111111111111-1 e a nota do 1º bimestre, como faço para inserir esta nota na tabela?

 

// Edit

 

Puts, acho que entendi :D

 

Ficaria deste modo:

ra_aluno.................id_materia....nota...bimestre...reforco...trabalho

111111111111-1.......ptg................9.........1...............N............N

222222222222-2.......mat...............6.........1...............S............N

É isso? Nuss... estou noobando demais com dados, tenho que treinar mais XD

Compartilhar este post


Link para o post
Compartilhar em outros sites

O botão de editar do primeiro post sumiu, então vou começar de novo.

 

*Alunos*
(PK) RA
Nome_Aluno
Ano_Aluno

*Materias*
(PK) ID_Materia
Nome_Materia

*Bimestre_Materia*
(PK) ID_Bimestre
(FK) ID_Materia
Bimestre

*Nota*
(PK) ID_Nota
(FK) RA
(FK) ID_Bimestre
Nota
Reforco
Trabalho

Agora sim! Percebi tambem que podem podem existir varias notas para trabalhos da mesma materia no mesmo bimestre, então transformei as PK's do Nota em FK's e criei a PK ID_Nota. É preciso ter muita atenção pra fazer um BD perfeito, tudo vira pegadinha.

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.