PHP - definir base de datos en mysql

 
Vista:

definir base de datos en mysql

Publicado por Isabel (11 intervenciones) el 27/09/2007 13:39:33
PAra este proyecto estoy tratando de hacerlo con PHP mysql

Tengo un grupo de estudiantes que se van a matricular, para ello tengo un formulario en el que ingresan los datos.Este formulario consta de:
Datos personales: nombre telefono, direcion etc.......

Y tambien en este mismo formulario debo seleccionar las materias que este estudiante va a tomar, para ellos dispongo de dos lista una en la que aparecen todas todas las materias y la otra vacia en la cual debo ir colocando aquellas materias que se han escogido. Aqui viene el primer problema, no se como capturar las materias seleccionadas para poder guardarlas en la base de datos. Ademas tengo una confucion con la base de datos, ya que yo la tengo definida asi:

Una tabla llamada materias y en ella tengo: cedula-estudiante, materia-seleccionada- calificacion.

Cuando yo matriculo el estudiante, los datos comunes (telefono, direccion..... etc,) van a la tabla estudiante y cuando registro las materias lo hago en la tabla materias tomando en cuenta la cedula del estudiante. Lo que no se hacer es como ingresarle las materias segun la cedula y luego como ingresarle las calificacines segun la cedula y la materia.
Ejemplo:

Si estudiante "Isabel" con cedula "xxxxxxx" selecciono matematicas, ingles y español, se supone que la instruccion para almacenarla debe ser: INSERT INTO matrias (materia-seleccionada_1, materia-seleccionada_2, ..., materia-seleccionada_N)
VALUES (aqui tengo el problema porque no se si debo crear un campo en la base de datos para cada materia)
Porque de lo contrario como ingresaria 5 materias para un solo estudiante y lo mismo pasa cuando vaya a ingresar las calificacines de cada materia para ese estudiante, no se como definir los campos de la base de datos.

Bueno la otra duda que tengo es luego de que el estudiante se registra junto con sus materias, debe existir otra parte cuando se acabe el semestre donde el profesor debe ingresar las calificaciones respectivas. Aqui va el otro problema, ya que el profesor digita la cedula del estudiante y aparece una pagina con todos los datos del estudiante, pero en la parte donde deben aparecer las materias estoy confundida, puesto que como explique en la parte de arriba tengo confusion con la base de datos.
Sin embargo la idea es que aprescan las materias seleccionadas y en frente aparezca un cuadro de texto para ingresarle la calificacion respectiva... como hacer esto y como ingresarlo a la base de datos??????

Gracias por la ayuda que me puedan brindar...
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:definir base de datos en mysql

Publicado por Soraya (41 intervenciones) el 27/09/2007 16:04:55
Hola, vamos por partes:

En principio tienes que tener bien definida la base de datos para trabajar luego cargando, modificando o consultando datos.

A simple vista te está faltando una tabla: Deberías tener definida una tabla de estudiantes (que es la que ya tienes) donde cargues todos los datos personales del estudiante (cedula, edad, dirección y todo lo que quieras guardar para un estudiante), segundo deberías tener una tabla de materias (en este caso no es la misma que tienes) esta tabla tiene que guardar una clave y un nombre de materia (solo dos campos), en esta tabla vas a guardar todas las materias que se dictan y la tercer tabla que necesitas es una tabla que sea materias_seleccionadas (que tiene por clave la cedula del alumno y la clave de la materia seleccionada) tambien esta tabla tiene dos campos.

Entonces teniendo las tres tablas la información de las materias para que el alumno elija las sacas de la tabla materias (la que te defini arriba), los datos personales del alumno los guardas en la tabla de estudiantes y cuando el alumno selecciona materias lo guardas con su número de cédula y la clave de la materia que seleccionó en la tabla materias seleccionadas.

Entonces en la tabla materias seleccionadas vas a tener las cédulas de los alumnos junto con la clave de las materias seleccionadas, si un estudiante selecciona mas de una materia en esa tabla te va a aparecer mas de una fila con la misma cédula pero cada fila con distinta materia seleccionada.

En cuanto a la parte de calificaciones puedes usar la misma tabla de materias seleccionadas y agregarle un campo que sea calificación entonces en esta tabla vas a tener cédula, clave de la materia seleccionada y calificación (si quieres que en lugar de la clave de la materia te aparezca el nombre vas a tener que hacer un join con la tabla materia para buscar el nombre según la clave de materia)

Bueno me parece que lo primero que debes hacer es tener bien la estructura de la base y luego seguir con la programación, si te surge luego alguna duda consultame

Espero haber ayudado

Saludos
Soraya
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:definir base de datos en mysql

Publicado por Isabel (11 intervenciones) el 28/09/2007 12:21:17
Soraya muchas gracias por tu ayuda de verdad me sacaste de muchas muchas dudas, gracias por tomarte el tiempo de responder y solucionar mis dudas.

Organizare la base de datos y despues continuare con la programacion en la cual tambien tengo dudas para capturar las variables.

Muchas muchas gracias y que Dios te bendiga

Isabel
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:definir base de datos en mysql

Publicado por Francisco Garcia (1 intervención) el 11/12/2007 20:08:34
definicion de:
Sistema
Base de datos
Tabla
Registro
Clave Foranea
Campo
Campo Clave Normalizacion
Integridad Referncial
Modelo Entidad relacion
Diagrama de caso de uso
Base legales
(si no seria mucho pedir me podrias dar en cada concepto autor y de donde las extraiste son para mi tesis y no las en cuentro)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar