Hola a todos, verán estoy haciendo un modelo de datos conceptual para una base de datos de encuestas.
La idea es que los usuarios comunes creen sus encuestas con una pregunta y puedan escribir la cantidad opciones predefinidas que quieran y el numero de respuestas permitidos.
EJEMPLO
pregunta: tenes perro?
opcion1: SI
opcion2: NO
nroRespuestasMax: 1
OTRO EJEMPLO
pregunta: que animal tenes?
opcion1: perro
opcion2: gato
opcion3: otro
opcion4: no tengo
nroRespuestasMax: 3
Una solución es crear una entidad ENCUESTA que tenga como identificador una "pregunta" y se relacione con otra entidad RESPUESTA que tenga como atributos las opcion y el valor acumulativo de la respuesta, junto con el identificador pregunta de ENCUESTA que actua como clave foranea en la tabla RESPUESTA para unir la relacion. Entonces si una encuesta tiene n opciones en la tabla RESPUESTA aparecera n veces el identificador de ENCUESTA junto con cada opcion y valores acumulativos. Quedaría asi:
ENCUESTA = ( pregunta )
RESPUESTA = ( pregunta , opcion, valorAcumulativo)
Esta es una solución sencilla pero tengo que procesar varias filas para hacer la consulta de cada encuesta.
Entonces se me ocurrió otra solución y acá me gustaría que me digan cual esta mejor y por qué.
Dado que yo se que lo mas comun es que la mayoría de las encuestas sean de 2 opciones del tipo ( SI , NO ). Otras menos de 3, y otras menos de 4 entonces planteo lo siguiente:
una tabla por cada numero de opciones hasta como maximo 4
ENCUESTA = ( pregunta )
para preguntas con 2 opciones:
RESPUESTA = ( pregunta , opcion1, valorAcumulativo1, opcion2, valorAcumulativo2, )
para preguntas con 3 opciones:
RESPUESTA = ( pregunta , opcion1, valorAcumulativo1, opcion2, valorAcumulativo2, opcion3, valorAcumulativo3)
para preguntas con 4 opciones:
RESPUESTA = ( pregunta , opcion1, valorAcumulativo1, opcion2, valorAcumulativo2, opcion3, valorAcumulativo3, opcion4, valorAcumulativo4)
para preguntas con mas de 4 opciones planteo la primera solución:
RESPUESTA = ( pregunta , opcion, valorAcumulativo)
entonces con esta solución en las encuestas de 4 opciones o menos tan solo con encontrar el identificador "pregunta" de encuesta en la tabla respuesta ya tengo toda la consulta en una sola fila
Espero que se haya entendido sino diganme y aclaro.
Agradezco cualquier respuesta coherente