es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Preguntas sobre diseño de esquema de base de datos con opciones múltiples

Digamos que queremos crear una aplicación de cuestionarios, donde un usuario pueda crear un cuestionario con las siguientes características:

  • Los usuarios pueden seleccionar preguntas para su cuestionario de un conjunto de preguntas predefinidas.
  • Cada pregunta puede tener múltiples opciones (elecciones); 2, 3, 5, 6, 9, no importa.
  • Las preguntas y sus opciones son agregadas por los administradores (a través de la API de Django Admin).

He elaborado un diseño de esquema bastante simple:

Ver imagen

Esto es lo que sucede en el diseño de esquema anterior:

  • Cada pregunta puede tener múltiples opciones.
  • El “QA” mapea la pregunta con la respuesta seleccionada por el usuario que hizo/tomó el cuestionario.
  • Cada cuestionario enviado puede tener múltiples preguntas junto con sus respuestas.

Una de las desventajas de este enfoque es que puedo asignar preguntas a respuestas que no pertenecen a la lista de opciones de esa pregunta en particular. Por ejemplo, creo dos preguntas:

  1. ¿Estás casado/a?
  2. ¿Cuál es tu bebida favorita?

Para la primera pregunta, tengo las siguientes opciones:

  • No

Y para la segunda pregunta, tengo las siguientes opciones:

  • Agua
  • Soda
  • Jugo Natural

A través de la API de Django Admin, puedo asignar la primera pregunta “¿Estás casado/a?” a la opción de la segunda pregunta “soda”.

¿Cómo puedo evitar esto? ¿Y qué otras desventajas ves en este enfoque? ¿Hay una mejor manera de diseñar este tipo de esquema?

Estoy utilizando Django para este proyecto en particular.

EDIT:
Como puedes ver en la imagen a continuación 👇, aparecen todas las opciones, incluso las que no pertenecen a la pregunta.

Ver imagen

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Una forma de evitar asignar preguntas a respuestas que no pertenecen a la lista de opciones es utilizar una relación de muchos a muchos entre preguntas y opciones. Esto significa que cada pregunta puede tener múltiples opciones y cada opción puede pertenecer a múltiples preguntas. Entonces, al asignar una pregunta a una respuesta, puedes asegurarte de que la respuesta pertenezca a la lista de opciones de esa pregunta en particular.

    Aquí tienes un diseño de esquema actualizado:

    Diagrama de esquema actualizado

    Este diseño incluye una nueva tabla llamada “Choice” que contiene todas las posibles opciones para todas las preguntas. Cada pregunta tiene una relación de muchos a muchos con Choice y cada QuizAnswer está asociada con una única Choice.

    Otro posible inconveniente del diseño original del esquema es que podría ser difícil realizar ciertos tipos de análisis, como encontrar las respuestas incorrectas más comunes o analizar tendencias en las respuestas a las preguntas. Este nuevo diseño de esquema facilita la consulta de este tipo de análisis.

    En general, este nuevo diseño de esquema ofrece un enfoque más flexible y escalable para una aplicación de cuestionarios.

Comments are closed.