EXPLICACION DE LAS TABLAS PARA LA BASE DE DATOS DEL GENERADOR DE ENCUESTAS En este texto se utilizan los siguientes términos: Usuario generador: es el usuario que sin tener que programar generará un encuesta online. Usuario contestador: es el usuario que sin tener que programar contestará una encuesta on-line. Superusuario: usuario experto, que tiene acceso a las bases de datos y puede modificarlas, y programar nuevas herramientas o utilidades. Las tablas para el motor generador de encuestas se almacenará la base de datos en el servidor de itio. Para acceder a éste: http://www.itio.upv.es/phpmyadmin/ usuario: gcp contraseña: impiva bases de datos: lo interesante es crear una base de datos específica para el generador de encuestas (GE). Como no tenemos permiso para crear bases de datos utilizaremos la base de datos TEST. En esta creamos las tablas necesarias para el generador de encuestas. TABLAS Y CAMPOS Tabla GE_encuestas Contendrá la identificación de todas las encuestas que se generen. Campo Tipo numero_encuesta int(3) descripcion_encuesta varchar(100) fecha_generacion_encuesta datetime preguntas_por_pagina_encuesta int(3) numero_encuesta: guardará el número de encuesta, a distinguir entre todas las que se creen. Para este proyecto irá de 1 a 3. Este es el campo clave de esta tabla. Este campo liga a la tabla con las tablas: GE_preguntas_encuestas, GE_opciones_encuestas. descripcion_encuesta: el usuario que la genere pondrá una explicación sobre el tema o título de la encuesta . fecha_generacion_encuesta: fecha en que se crea la encuesta, no fecha en que se contesta. preguntas_por_pagina_encuesta: indica cuantas preguntas quiere que aparezcan en un pantallazo. Tabla GE_preguntas Contendrá todas las preguntas de todas la encuestas que se generen. Campo Tipo Atributo Nulo Predeterminado Extra numero_encuesta int(3) No 0 numero_pregunta int(3) No 0 descripcion varchar(200) No tipo_pregunta char(1) No opcionalidad char(1) No orden int(3) No codificacion varchar(10) No Acción 0 numero_encuesta: identifica a qué encuesta pertenece la pregunta. Numero_encuesta y numero_pregunta conformarán el campo clave. Numero_encuesta liga a esta tabla con la tabla GE_encuestas. numero_pregunta: identifica a la pregunta dentro de la encuesta. Numero_encuesta y numero_pregunta conformarán el campo clave. Numero_pregunta liga a esta tabla con la tabla GE_opciones_encuestas. descripción: recogerá el enunciado de la pregunta. Como el programa utiliza su propia numeración para funcionar correctamente, el usuario debe incluir como parte del enunciado si su encuesta sigue alguna numeración particular de apartados y subapartados. tipo_pregunta: recogerá de forma codificada el tipo de pregunta (abierta, cerrada excluyente, cerrada incluyente...). Ver tabla GE_tipo_pregunta. opcionalidad: indicará cuantas n contestaciones ha de tener. Tendrá n y solo n contestaciones si es de tipo excluyente, o tendrá al menos n contestaciones si es de tipo incluyente. 0- no es obligatoria la contestación. Las preguntas abiertas pueden quedar en blanco, y las cerradas excluyentes o incluyentes pueden quedar sin ninguna opción marcada 1- En preguntas cerradas incluyentes obligado contestar al menos 1 opción. En preguntas cerradas excluyentes se contestará 1 y solo 1 opción (radiobutton). En preguntas abiertas obliga a contestar. 2- En preguntas cerradas incluyentes obligado contestar al menos 2 opción. En preguntas cerradas excluyentes se contestará 2 y solo 2 opciónes. En preguntas abiertas obliga a contestar. n- En preguntas cerradas incluyentes obligado contestar al menos n opciones. En preguntas cerradas excluyentes se contestará n y solo n opciones. En preguntas abiertas obliga a contestar. Orden: indica el orden que el usuario generador quiere darle a la pregunta. Podrá utilizar decimales para colocar esta pregunta entre dos preguntas ya definidas con un orden con número consecutivos. Ejemplo, para colocar una pregunta entre la 4 y la 5 le daremos el orden 4,5 ó 4,7. Codificación: el usuario generador le dará a la pregunta una codificación alfanumérica, que será la que vaya a utilizar cuando defina los resultados. Como el usuario generador no conoce la numeración que el programa utiliza para su funcionamiento se le da este campo, para que ponga identificador por él conocido para la pregunta. Podría añadirse un campo, o bien una tabla, para que el usuario generador eliguiera un tipo de validación de respuesta. Ejemplo, que no permita respuestas en blanco, o que no permita letras donde pide teléfono, o que obligue a aparecer una @ donde pregunta un e-mail. Pero esta utilidad,a 24-2-05 se decide no implementarla de momento, a menos que sobre tiempo. Tabla GE_tipo_pregunta En esta tabla se recogerá los distintos tipos de preguntas que pueden utilizarse al generar las encuestas. A esta tabla es de sólo consulta. Sólo un superusuario tiene acceso a esta tabla para programar nuevos tipos de preguntas. Ni el usuario generador ni el usuario contestador tienen acceden a esta tabla ni en el proceso de generar la encuesta ni en proceso de contestarla. Campo Tipo tipo_pregunta descripcion_tipo_pregunta tipo_pregunta: con un número codificará de qué tipo puede ser la pregunta. Este será el campo clave de esta tabla. Servirá para ligar a la tabla GE_tipo_pregunta con la tabla GE_preguntas. descripcion_tipo_pregunta: se introducirá la explicación sobre el tipo de pregunta. En principio se utilizará: 0- titulo: no se espera respuesta. Se utilizará para poner títulos a secciones o explicaciones adicionales. 1-cerrada excluyente: pregunta para contestar n y solo n de entre varias opciones. 2-cerrada incluyente: pregunta para contestar n o más de entre varias opciones 3-Abierta: pregunta para contestar un número o un texto Tabla GE_opciones_preguntas En esta tabla se guardan las opciones de la preguntas cerradas. Campo Tipo Atributos numero_encuesta int(3) numero_pregunta int(3) numero_opcion int(3) descripcion_opcion varchar(255) numero_encuesta numero_pregunta numero_opcion descripcion_opcion: contiene el enunciado de la opción. Tabla GE_respuestas Se almacenarán todas las respuestas de todas las encuestas de todos los usuarios. Campo Tipo usuario Atributos varchar(50) numero_encuesta int(3) numero_pregunta int(3) tipo_pregunta char(1) respuesta varchar(100) Se ha introdizo el campo tipo_pregunta para poder interpretar correctamente la respuesta, y así distinguir cuando un número con ceros y unos (10) es un número propiamente (10- diez) o es la codificación de una respuesta a una pregunta con multiples opciones (10- primera positiva, segunda negativa) Podemos ahorrarnos este campo, codificando debidamente las respuestas. Así cuando escribamos la codificación de una respuesta múltiple podríamos añadir alguna marca delante. Ejem C10. El campo tipo_pregunta nos lo ahorraremos por motivos de ortogonalidad o 3º formas normal de las bases de datos. Conociendo qué numero_encuesta es y qué numero_pregunta es ya podemos conocer consultando en otra tabla qué tipo_pregunta es. Tabla GE_usuarios Identifica a los usuarios que van contestando las encuestas. Los datos personales de los usuario no irán en esta tabla. Irán en cada encuesta si procede. De esta forma se permitirá la construcción de encuestas anónimas. Campo Tipo Atributos usuario varchar(50) contraseña varchar(50) numero_encuesta int(3) El campo numero_encuestas no sé si es necesario. En todo, si se pone, liga a esta tabla con las tablas GE_encuestas y GE_preguntas Tabla GE_usuarios_generadores Recogerá a aquellos usuarios que tienen permiso para acceder al sistema para crear una encuesta y dirá qué encuesta ha creado. En usuario se podrá repetir en tanto que cree nuevas encuestas. Campo usuario_generador Tipo Atributos Nulo Predeterminado Extra varchar(50) No contraseña_generador varchar(50) No numero_encuesta No int(5) 0 Acción ¿guardamos los usuarios que generan las encuestas?