Foros del Web » Programando para Internet » PHP »

Buena Duda

Estas en el tema de Buena Duda en el foro de PHP en Foros del Web. Hola Tengo la siguiente duda: Tengo que desarrollar un sistema de notas para un Colegio, le duda es la siguiente: Debo crear el sistema según ...
  #1 (permalink)  
Antiguo 16/11/2003, 02:10
 
Fecha de Ingreso: abril-2003
Ubicación: Venezuela
Mensajes: 297
Antigüedad: 14 años, 7 meses
Puntos: 1
Buena Duda

Hola

Tengo la siguiente duda:

Tengo que desarrollar un sistema de notas para un Colegio, le duda es la siguiente:

Debo crear el sistema según lo siguiente, el profesor entrega una hoja donde lleva la información de las
notas del estudiante(80,90,100, las notas de los estudiantes estan divididas en 3 periodos), la materia que el profesor imparte (ciencias-matemática-...), el numero de
grupo (10-1 - 10-a -...). Ahora con esta información el enctagado de digitar tiene que insertar la información
Me lo supose así el digitador introduce el numero de grupo (10-1 - 10-a -...) y entonces se hace un busqueda,
de manera que se muestren todos los integrantes de los grupos en orden alfábético, entonces se digitan las notas
según el periodo (3 periodos en este caso) y se guardan los datos.

Bosquejo de la pantalla ya completa:


# Grupo: ___ Materia:______


# Grupo: ___ Materia:______

Periodo 1 --- Periodo 2 --- Periodo 3 --- Promedio Final --- Resultado
--------------------------------------------Periodo 1 --- Periodo 2 --- Periodo 3 --- Promedio Final --- Resultado

Chacon Chavaría Laria --------------- 100 ------- 100 ------------ 100 ------------ 100 --------------------- A
Fernandez Ramirez Mariela ---------- 90 --------- 90 ---------- 90 -------------- 90 ------------------------ A
...
García Herrera Carlos ----------------- 100 ------ 100 ------------ 100 ------------ 100 --------------------- A
Venegas Ultale Wilson ----------------- 50 ------- 60 ------------- 70 ------------- 60 ------------------------ R




Ahora les voy a explicar otras cosillas nuevas que se aprecian arriba:

A) primero el Promedio final corresponde a la suma de los 3 periodos entre 3.
b) el Resultado se refiere a el estado del estudiante A=Aprobado R= Reprobado

Aquí muestro la pantalla como si estuviese completa y se hubiese terminado el periodo lectivo (era para darles una idea).

Ahora mi pregunta es bueno lo voy a implementar en PHP-MySQL, mi gran duda es que como puedo implementar la tabla referente
a cada materia para guardar las notas, hasta ahora me he cerrado de una manera que me da la cabeza: he pensado torpemente así:


Una tabla para cada materia que se imparte en dicho Colegio (en este caso son 13 materias).
Ejemplo;:

Tabla materia Biología:

id_estudiante Periodo 1 _ Periodo 2 _ Periodo 3 _ Promedio Final _ Resultado

Pero se imaginan son 800 estudiantes (ya que todos los niveles llevan esta materia), 800 campos, solo por la materia Bilogía

Ahora habría que hacer los mismo por Matemática, Estudios Sociales, Inglés, Francés, ...


De esta menera serían 13 tablas con 800 campos todas,


De seguro van a pensar, que ignorancia de mi parte (o peor áun), pero les agradecería cualquier ayuda
para poder reducir el tamaño de estas tablas y por los tanto la eficiencia del sistema.
__________________
crecer es conocer y conocer es aprender
  #2 (permalink)  
Antiguo 16/11/2003, 11:47
 
Fecha de Ingreso: agosto-2003
Mensajes: 272
Antigüedad: 14 años, 3 meses
Puntos: 0
Yo lo haria así

Un campo clave id, y luego esto aver que te parece
id | Nombre | Año | Grupo | Biologia | Matematicas | Fisica | ......|

Entonces lo que tiene de bueno es lo siguiente a la hora de recuperar los datos los tenes a todos en una misma tabla y vasta con colocar las condiciones para recuperar los alumnos.

Entonces podes pedir

Dame del año = 5 y del Grupo 1 los que estudian Biologia.

Y listo cero complicaciones.
Saludos, enviame tu opinion
  #3 (permalink)  
Antiguo 17/11/2003, 00:58
 
Fecha de Ingreso: abril-2003
Ubicación: Venezuela
Mensajes: 297
Antigüedad: 14 años, 7 meses
Puntos: 1
De hecho lo pense, pero lo que pasa que es cada materia tiene tres notas, o me estas diciendo que haga una tabla que represente cada periodo(1,2,3), o sea 3 tablas cada una con 800 campos.

Es así
__________________
crecer es conocer y conocer es aprender
  #4 (permalink)  
Antiguo 17/11/2003, 01:02
 
Fecha de Ingreso: abril-2003
Ubicación: Venezuela
Mensajes: 297
Antigüedad: 14 años, 7 meses
Puntos: 1
es simple.
creas una tabla general como la del ejemplo de biologia, pero le agregas al lado del Id_estudiante, CODIGO_MATERIA

y cada materia tiene un codigo:
BI = BIOLOGIA
MA = MATEMATICAS
etc.
estos codigos o bien los puedes tener en un fichero, almacenados en un array asi:
$codigos_materia = array('ma' => 'matematicas', 'bi' => 'biologia', 'etc'=> 'etcetera');

o bien en otra tabla llamada "materias"
en donde tienes las columnas:
codigo_materia, nombre_materia
y cada vez que quiras cargar la lista, tendras que hacer una Query y hacer un JOIN con la tablas.
Si no eres tan experto, y tampoco quieres que las materias se modifiquen via web (eso quiere decir que seran relativamente fijas), entonces no tienes que cambiarlas.... meteleo todo en un array. Y cuando necesites agregar alguna materia, lo haces manualmente.

Bueno, eso es todo.
cualquier duda pregunta (de manera inteligente)
si no soy yo, alguien seguro respondera,
__________________
crecer es conocer y conocer es aprender
  #5 (permalink)  
Antiguo 17/11/2003, 01:10
 
Fecha de Ingreso: abril-2003
Ubicación: Venezuela
Mensajes: 297
Antigüedad: 14 años, 7 meses
Puntos: 1
Eso de arriba me lo propusieron en otro foro como lo ven?
__________________
crecer es conocer y conocer es aprender
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 21:14.