Tengo UNA página html larga, varios conjuntos de preguntas divididas en secciones pequeñas (aproximadamente 15 subsecciones en una página), el total de preguntas son aproximadamente 100 preguntas: varía de entrada, opción múltiple, casillas de verificación, botones de radio, área de texto, y carga de archivos. Una pregunta podría contener muchas respuestas que se obtuvieron del grupo de casillas de verificación, grupo de lista de selección, grupo de selección múltiple o todas ellas combinadas en una sola respuesta. Pensé que usaría este diseño de base de datos a continuación, pero descubrí últimamente que no es el buen enfoque después de todo.
- Un cliente solo puede tener un conjunto de preguntas: un cliente por cada 100 preguntas.
- Para el enfoque anterior, no mantengo preguntas en la base de datos, sino que las asigno como constantes en la codificación PHP. El problema es que tengo que comparar la pregunta en PHP para sincronizarla con la respuesta en la base de datos. Si una pregunta hubiera sido alterada / eliminada / movida de PHP, definitivamente me perdería para que coincida con la respuesta en la base de datos del cuestionario. Mejor solución?
- ¿Podría mantener múltiples respuestas obtenidas de múltiples elementos en forma en un campo como una sola respuesta? ¿Cómo podría recuperar este campo y mostrarlo nuevamente para que el cliente lo vea en el formulario?
- ¿Qué opción a continuación debo elegir?
OPCIÓN 1: Enfoque antiguo (1 tabla)
TABLA: Cuestionario
- ID (PK)
- Identificación del cliente
- Estado
- A1
- A2
- A3
- .
- .
- .
- A100
OPCIÓN 2: Nuevo enfoque (2 tablas)
TABLA: Pregunta
- QID (PK)
- Pregunta (varchar)
TABLA: Respuesta
- AYUDA (PK)
- Identificación del cliente
- QID (int)
- Respuesta (varchar)
O la OPCIÓN 3?