Duda existencial : Diseño de base de datos
Hola a toda la comunidad, para empezar no se si este foro es el lugar correcto para poner esta duda que tengo:
En mis ratos libres, he pensado en desarrollar una aplicación en los diferentes frameworks que existen (Spring MVC, Struts, JSF), y para la persistencia de datos quiero usar Hibernate y MySQL, pero me surgió la duda al momento de hacer el diseño de la bd, supongamos que mi aplicación es acerca de un sitio de encuestas, donde las opciones son si, no, a veces, nunca.
¿Que es lo mejor? ¿hacer un campo por cada pregunta? o hacer una tabla y vincular un 'encuestado' a un solo campo con todas las respuestas separadas por coma, en un solo string, por ejemplo si,no,si,si,si,no,nunca... etc
¿O que es lo que proponen? Sirve que entramos en intercambio de ideas, porque javamexico se esta convirtiendo en un espacio 'resuelve tareas' y ya casi no se discuten temas.
Saludos !!
- Inicie sesión o regístrese para enviar comentarios
> ¿hacer un campo por cada
> ¿hacer un campo por cada pregunta?
Para cada pregunta? Te refieres a "para cada respuesta"?
> o hacer una tabla y vincular un 'encuestado' a un solo campo con todas las respuestas separadas por coma, en un solo string, por ejemplo si,no,si,si,si,no,nunca..
No. Eso de separar por coma se usaba como ultimo recurso para lugares donde no habia otra opcion, pero es mala idea en general.
Esta es una relación muchos a muchos y como tal necesita una tabla intermedia ( muchas preguntas y muchos encuestados ) para las respuestas, donde guardas el valor. Así puedes después usar esa misma estructura para guardar otros tipos de respuestas.
Gracias
Muy bien, gracias por la respuesta dada, eso soluciona incluso si las preguntas tienen categoría o si los usuarios tienen un rol diferente !! Voy a tomarlo en cuenta para el análisis que estoy haciendo, para lo cual surge otra duda, pero eso es a nivel Spring MVC.
No habra problema con hibernate?
Si quiero usar hibernate, tendria que crear n instancias de la tabla 'answer' , para guardar un formulario, de respuestas? eso es factible a nivel programacion?
Si
Si