Ver Mensaje Individual
  #1 (permalink)  
Antiguo 14/07/2014, 23:12
cb17a
 
Fecha de Ingreso: febrero-2012
Ubicación: Aca en la Tierra.
Mensajes: 17
Antigüedad: 13 años, 1 mes
Puntos: 0
Sonrisa Modelo de datos de una encuesta (duda)

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


Última edición por cb17a; 14/07/2014 a las 23:20