Ver Mensaje Individual
  #10 (permalink)  
Antiguo 05/11/2011, 18:35
Avatar de gnzsoloyo
gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: MySql - Realizar un UPDATE de varios campos a partir de un SELECT

El esquema que planteas es bastante simple en realidad, porque se trata de un ejercicio muy común en el cursado de Base de Datos de cualquier carrera de informática. Es casi el TP Nro. 1...

La cosa es mas o menos así:

- Alumno
- Profesor
- Asignatura (cada curso o materia distinta que se puede dar)
- Cursada (un registro por cada asignatura que se da en un año o período determinado)
- Comision (relaciona Profesor con Cursada, por lo que establece quién da qué asignatura)
- Alumno_Comision (tabla relacional que vincula una comisión con los Alumno, poniendo un registro por cada alumno inscripto en cada comisión)
- Examen (contiene un registro por cada examen tomado en cada asignatura, pero sólo para determinar la fecha de realización)
- Alumno_Examen (Vinculada a Alumno_Comision y a Examen, con un registro por cada alumno que se presentó en el examen, contiene también la nota)

Puede requerirse alguna tablas más, pero al menos ese es el esquema.

Ahora bien, insertar una nota de un alumno nunca se hace en la tabla que visualizas. Tienes que comprender que no es lo mismo lo que ves en la aplicación que lo que guardas en la base. Eso es una de las cosas que los programadores raramente entienden al principio: El modelo de interfases de usuario y el modelo de datos son cosas completamente independientes. El que veas la información en una tabla no implica, a nivel de base de datos, que esa tabla realmente exista.
Las tablas en pantalla son representaciones visuales para que el usuario lego entienda lo que debe poner o conseguir, pero las tablas de la base de datos tienen por objeto almacenar de forma segura y consistente información que peude ser usada luego para ser presentada de diversas formas. Diversas formas. Por eso la aplicación debe ser independiente del modelo de datos.
El modelo de datos debe proveer a la aplicación de la información que requiere, pero una no es espejo de la otra.

¿Se entienden estos conceptos?

Para tu caso, con un esquema de al menos 8 tablas, puedes proveer al sistema de datos en forma de tablas con diferentes presentaciones, con el mismo esquema, y sólo a través de consultas o vistas.
Para el caso, como dije, en la pantalla el profesor ingresará los datos en la forma que quieras, pero luego, en la aplicación (el code behind), debes hacer que esos datos ingresados se guarden en las tablas correctas. Eso es lo que debes hacer pro programación, y luego, simplemente volviendo aleer la vista, puedes presentar en pantalla los datos actualizados...

Así es como se trabajan todas las aplicaciones que conoces y que usan bases de datos relacionales.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)