README

README document icon README — README document, 2 kB (2745 bytes)

Continguts del fitxer

En este directorio se pueden encontrar los documentos relativos al esquema SQL
utilizado.

Modelo relacional: v9

Cambios:
 - Se ha introducido ON DELETE CASCADE para propagar borrado de registros cuando
 sea necesario.
 
 - Ahora teacher.login, subject.name, group.name y term.name son UNIQUE. No se 
permitirán duplicados ni en INSERT ni UPDATE. Cuando esto ocurra la BBDD retorna
el error de violación de campo único y se debe informar al usuario de que ya existe
un login, materia, grupo o term con ese nombre.

La forma recomendada de trabajar es intentar la inserción o actualización e informar
si se produce un error. Esto da menos trabajo que escribir código para ver si existe
o no el registro antes de intentar insertarlo/actualizar.

 - Añadido a grupo la columna teacher_idteacher para representar al tutor del grupo.
Esta columna acepta valores nulos y tiene ON CASCADE NULL, para que al eliminar un
profesor no se borren aquellos grupos de los que es tutor sino que solo se queden sin
tutor.

 - Actualizo TestData.sql para que los grupos tengan tutor:
   Profesor 1 tutor grupos 1 y 2.
   Profesor 2 tutor grupo 3.
   Grupos 4 y 5 sin tutor.

Modelo relacional: v7

Se incluye:

 - er.mwb fichero con el esquema relacional para MySQL Workbench
 - amdb.png imagen con el esquema relacional
 - AttendanceManager.sql definición de tablas
 - TestData.sql datos de prueba para cargar en MySQL
 
Durante el desarrollo se utilizará la siguiente convención para conectar con
MySQL:

 - Usuario: 'amuser'
 - Contraseña: 'secreto'
 - Servidor: '127.0.0.1'
 - Puerto: '3306'
 - Base de datos: 'amdb'
 
Estos parámetros están codificados en el fichero DatabaseStorage.java (en el
paquete org.iespuigcastellar.attendancemanager.core). En una próxima revisión
es necesario añadir soporte para un fichero properties configurable por el
usuario. 
 
Los datos de prueba incluyen:

	- Teachers (usuarios): de 'prof1' hasta 'prof5'. Todos los usuarios
	  tienen el login y el password igual. Ejemplo: prof1/prof1, ...
	  
	- Students: de 'student1' hasta 'student25'
	
	- Groups: de 'group1' hasta 'group5'
	
	- Subjects: de 'subject1' hasta 'subject5'. Todas las asignaturas las
	  imparte 'prof1'.
	
	- Asignación variable de alumnos a los grupos. El grupo 1 es el más
	  concurrido.
	  
	- Diferentes bloques lectivos repartidos a lo largo de la semana para
	  las materias 1 y 2.
	  
	  
Respecto al diagrama entidad relación:

	El diagrama entidad relación propuesto es mínimo para alcanzar los
	objetivos de la aplicación reduciendo su complejidad al máximo.
	
	No pretende ser un ejemplo de un diagrama genérico ni completo.
	
	No se descartan modificaciones al mismo durante el desarrollo del
	crédito de síntesis.