sql >> Base de Datos >  >> RDS >> Database

Un modelo de base de datos para una encuesta en línea. Parte 1

Necesito crear el diseño para una nueva base de datos que será la capa de datos para una aplicación; la aplicación será una encuesta en línea o votando como Survey Monkey. Mi desafío es que la funcionalidad que necesito no es compatible con los sitios de encuestas existentes, por lo que necesito crear el mío propio. Lo que necesito es una encuesta condicional (si la respuesta a la pregunta 4 es "sí", hacemos la pregunta 5 y saltamos la pregunta 6; pero si la respuesta a la pregunta 4 es "no", saltamos la pregunta 5 y hacemos la pregunta 6 ).

Escribiré una serie de artículos sobre este diseño y ampliaré el diseño cada vez, por lo que este artículo se trata principalmente de preparar el escenario para la base de datos de encuestas básica. En futuros artículos, trabajaré en las características más avanzadas relacionado con un orden condicional de preguntas en una encuesta y la administración de las encuestas.

Dominio

El dominio para una encuesta en línea se basa en un cuestionario o sondeo que consta de una serie de preguntas. Los encuestados realizarán la encuesta y debemos almacenar sus respuestas.

Por ahora, comenzaremos con preguntas abiertas que consisten en una pregunta y una respuesta.

En futuras versiones del modelo, querremos definir el orden de las preguntas en la encuesta, si las preguntas son condicionales o no, y los diferentes tipos de preguntas (como las de opción múltiple).

Funcionalidad

Como se mencionó, le preguntaremos a los encuestados para responder a la encuesta (no estará abierta a todos) y necesitamos almacenar sus respuestas. Además, el mismo participante puede volver y actualizar sus respuestas. Almacenamiento de respuestas puede ser algo desafiante, ya que necesitaremos tablas que estén vinculadas a las preguntas originales, pero que tengan respuestas para cada uno de los encuestados que complete la encuesta.

En versiones futuras del modelo, agregaremos administradores de las encuestas en línea.

Finalmente, se necesitarán informes y análisis:¿Cuáles fueron las respuestas? ¿Cuántas respuestas se recibieron de diferentes subgrupos? ¿Qué preguntas no se respondieron con mayor frecuencia (para identificar preguntas mal redactadas)?

Entidades y Relaciones

Veamos:tenemos una encuesta (o cuestionario) que consta de una serie de preguntas. Por ahora, comenzamos solo con preguntas abiertas, por lo que no hay necesidad de posibles respuestas vinculadas a la pregunta, como sería necesario para las preguntas de opción múltiple. El orden de las preguntas en la encuesta será fijo (definido cuando se crea la encuesta), pero en futuras versiones del modelo nos gustaría agregar la opción para una ruta condicional a través de la encuesta.

Obviamente, necesitaremos encuestados y sus respuestas. Como se mencionó, agregaremos la administración de usuarios en las futuras versiones del modelo.

Diseño formal

Ahora que conocemos las entidades y las relaciones, estamos listos para construir nuestro Diagrama de relación de entidad (ERD). Para ello utilizaremos Vertabelo , una herramienta en línea para el modelado de bases de datos. Si aún no tiene su cuenta de Vertabelo, puede registrarse aquí para obtener un plan de prueba gratuito.

Para nuestra encuesta en línea, comenzaremos con la encuesta, sus preguntas asociadas y el orden en que se muestran las preguntas. Agregamos a los encuestados y luego vinculamos las encuestas a las que un encuestado proporcionó respuestas y sus respuestas para una encuesta.




Por ahora, usemos eso como base y agreguemos más complejidad en futuras versiones del modelo.

Conclusión

Con nuestro diseño básico definido, ahora podemos comenzar a pensar en mejoras. En futuros artículos, trabajaré en las características más avanzadas como:

  • Diferentes tipos de preguntas, como preguntas de opción múltiple
  • Orden condicional de las preguntas en una encuesta
  • Administración de las encuestas.