Foros del Web » Programación para mayores de 30 ;) » Programación General »

¿Alguien me ayuda a plantear esto?

Estas en el tema de ¿Alguien me ayuda a plantear esto? en el foro de Programación General en Foros del Web. Tengo en mente hacer un SGC (Sistema de Gestion de Contenido) para un colegio. Entonces ahora me dio con querer agregar las asignaturas dinamicamente. Para ...
  #1 (permalink)  
Antiguo 11/08/2008, 01:47
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 16 años, 4 meses
Puntos: 416
¿Alguien me ayuda a plantear esto?

Tengo en mente hacer un SGC (Sistema de Gestion de Contenido) para un colegio.

Entonces ahora me dio con querer agregar las asignaturas dinamicamente.
Para que asi sea mas facil su manejo y no tener que adaptarlo para cada sitio web que valla a crear.

Entonces antes tenia pensado tener una tabla con todas las asignaturas y un ID unico el cual estaria relacionado a la tabla con la informacion de los estudiantes. Pero al querer agregarle la funcionalidad de poner las asignaturas dinamicamente, me tope con que tambien tendria que agregar las columnas de la tabla.

Estuve leyendo sobre ADD ... AFTER de MySQL.

Los que les pido es que me sugieran si deberia de hacerlo de esa manera, o si deberia tener la estructura de mi base de datos de una manera diferente.

Otra cosa tambien seria, al tener las asignaturas dinamicamente ... Si quisiera mostrar un registro con todos los estudiantes, junto con las calificaciones, en ese caso tendria que usar un 2 bucles:
Uno para mostrar los datos hacia abajo (los estudiantes) y el otro hacia la derecha (para mostrar las asignaturas).

Código PHP:
<?php
//Cree este array solo para probar
$matriz = array("LET" => "90",
                
"MAT" => "91",
                
"SOC" => "92");
echo 
'<table width="50%" border="0" cellspacing="0" cellpadding="0">';
for(
$i=0$i<=4$i++)
{
  echo 
'<tr>';
    echo 
'<td>'.$i.'</td>'//Aqui va a ir el nombre de el estudiante por lo que lo reemplazaria por algo como: $row['nombre_est'];
    
foreach($matriz as $asignatura => $calif) {
        echo 
'<td>';
        echo 
$calif/* Esto es solo para probar, pero, ¿tendria algun problema si el dato a imprimir tambien venga desde un array? (En este caso
        las calificaciones de las asignaturas para cada estudiante) que vendria algo como: $row[$asignatura]*/
        
echo '</td>';
    }
  echo 
'</tr>';
}
echo 
'</table>';
?>
¿Deberia hacerlo de otra forma?
¿Me estoy complicando la vida?
O la manera en la que lo estoy planteando esta bien.

Cualquier comentario es aceptado :)
  #2 (permalink)  
Antiguo 11/08/2008, 02:21
venkman
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: ¿Alguien me ayuda a plantear esto?

Mmmm... Por lo que entiendo, estás haciendo que las asignaturas sean columnas de una tabla, ¿correcto?

Pero me pregunto ¿para qué hacerlo así? ¿No sería más sencillo que las asignaturas sean valores (filas) de una tabla?

No sé cómo tendrás planteado tu sistema, pero se me ocurre que en lugar de tener en una fila todas las calificaciones de los estudiantes, lo que tendrías que tener es algo de este estilo:

Código:
Tabla: Estudiantes
    - id_estudiante
    - (otros... nombre, apellidos, fecha_nacimiento, etc)
Tabla: Asignaturas
    - id_asignatura
    - (otros... materia, profesor, aula, etc)
Tabla: Calificaciones
    - id_estudiante
    - id_asignatura
    - puntuacion
    - (otros... fecha, etc)

Añadir una asignatura es tan sencillo como insertar una nueva fila en la tabla Asignaturas. Las Calificaciones se guardan en su propia tabla, una que relaciona los Estudiantes con las Asignaturas.

Seguramente necesites ampliar esto aún más para establecer otro tipo de relaciones (tablas de Profesores, de Aulas...) pero la idea básica para esta parte es esta.

Las columnas de una tabla lo que deben representar son propiedades de una entidad, no entidades en sí. Si quieres guardar asignaturas, estas no serán columnas de una tabla, sino que la tabla definirá las propiedades de una asignatura y cada una se guardará en una fila de la tabla.


¿Quizá necesites algo más de estudio sobre el diseño y modelado de datos?.
  #3 (permalink)  
Antiguo 11/08/2008, 08:09
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 6 meses
Puntos: 2135
Respuesta: ¿Alguien me ayuda a plantear esto?

Tema trasladado a Ingenieria de Software y Gestion de Proyectos.
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 23:18.