Sistema de exámenes y Evaluación en Php y MySql – Base de datos I

Una vez hemos planificado nuestra aplicación de Sistema de Eumenes en Php y MySQL y hemos visto las diferentes funcionalidades de cada uno de los perfiles que van a actuar, que si bien recordáis del anterior post son “alumnos” y “profesores”.

CLIC EN LA IMAGEN PARA PANTALLA COMPLETA

Diagrama entidad-relación sistema de exámenes

Es hora de plasmarlo en la base de datos que será donde tendremos guardados todos los datos.

Pero antes vamos a recordar lo que hemos visto hasta ahora:

Guía tutorial Sistema de exámenes en Php y Mysql

Llegados a este punto, vamos a empezar con el código, eso que a la mayoría nos gusta aunque desde aquí aprovecho para volver a recordaros que lo mejor antes de empezar a codificar es analizar bien las cosas y usar lápiz y papel.

Como bien he comentado antes, disponemos de 2 partes bien diferenciadas, que son precisamente los dos perfiles “Profesor” y “Alumnos”, que ya subrayamos en la planificación, así que vamos a crear estas 2 tablas que son muy similares (algunos prefieren tener sólo 1 tabla Usuarios, pero creo que es más viable de esta forma).

NOTA!: Crear la base de datos EXAMENES tipo INNODB.

Tabla Alumnos en MySql

La tabla Alumnos nos servirá para tener información tanto del acceso al sistema como de la información básica de cada alumno.

Vamos a ver con detalle algunos datos importantes de la tabla:

  • E-mail: El campo e-mail nos servirá tanto para guardar los datos de acceso como para el envío de correo con información de los exámenes, evaluaciones, etc .. Este campo será un texto con un máximo de 45 posiciones.
  • Password: Tendrá un mínimo de 6 posiciones y nos servirá igual que el e-mail, para guardar los datos de acceso al sistema.
  • Fec_Alta: Fecha en la que el Alumno se inscribe al curso. Será un campo tipo fecha. (AAAA-MM-DD).
  • Fec_Baja: Fecha en la que el Alumno se da de baja del curso. Será un campo tipo fecha. (AAAA-MM-DD).
  • Estado: Campo que nos servirá para saber si un Alumno ha activado su cuenta a través del e-mail enviado al darse de alta o no.

Sobre los demás campos se pueden entender perfectamente qué función tienen, tan sólo con el nombre del campo sabremos de que se trata (apellido1, apellido2, telefono, etc ..).

Código MySql para crear la tabla Alumnos

Código:

[mysql]
CREATE TABLE `alumnos` (
`id_alumnos` int(10) unsigned NOT NULL,
`email` varchar(45) NOT NULL,
`password` varchar(45) NOT NULL,
`nombre` varchar(45) NOT NULL,
`apellido1` varchar(45) NOT NULL,
`apellido2` varchar(45) NOT NULL,
`fec_nacim` date default NULL,
`telefono` int(10) unsigned default NULL,
`movil` int(10) unsigned default NULL,
`fec_alta` date NOT NULL,
`fec_baja` date NOT NULL default ‘9999-12-31’,
`estado` enum(‘1′,’0’) NOT NULL COMMENT ‘(”1”) Si el alumno está dado de alta. (”0”) Si el alumno está dado de baja’,
PRIMARY KEY (`id_alumnos`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT=’Alumnos de la escuela’;

[/mysql]

Tabla Profesores en MySql

Si echáis un vistazo en el diagrama Entidad-Relación a la tabla “Profesores” podéis apreciar que son los mismos campos salvo el identificador “id_profesor”, por eso no vamos a pararnos de nuevo a explicar los campos y vayamos directo al código.

Código MySql para crear la tabla Profesores

Código:

[mysql]
CREATE TABLE `profesores` (
`id_profesores` int(10) unsigned NOT NULL,
`email` varchar(45) NOT NULL,
`password` varchar(45) NOT NULL,
`nombre` varchar(45) NOT NULL,
`apellido1` varchar(45) NOT NULL,
`apellido2` varchar(45) NOT NULL,
`fec_nacim` date default NULL,
`telefono` int(10) unsigned default NULL,
`movil` int(10) unsigned default NULL,
`fec_alta` date NOT NULL,
`fec_baja` date NOT NULL default ‘9999-12-31’,
`estado` enum(‘1′,’0’) NOT NULL COMMENT ‘(”1”) Si el profesor está dado de alta. (”0”) Si el profesor está dado de baja’,
PRIMARY KEY (`id_profesores`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT=’Profesores de la escuela’;
[/mysql]

En el próximo tutorial veremos las demás tablas como: “Cursos, Exámenes, Asignaturas, Preguntas, Respuesta” y sus relaciones.

Espero vuestras opiniones, críticas o sugerencias que seguro algo tendréis que preguntar o aportar.