sistema - encuestas en mysql
Esquema de base de datos de encuesta (3)
Creo que question_id en poll_voting_history tampoco es necesario, ya que cada respuesta apunta a una pregunta, por lo tanto, en función de answer_id puede obtener el question_id al que pertenece.
¿Cuál es el mejor esquema de base de datos para encuestas? ¿La relación uno a muchos es buena para esto? Estoy pensando en tener dos mesas:
poll_questions
int id
varchar body
datetime created_at
datetime updated_at
poll_answers
int id
varchar body
int votes default 0
int question_id (foreign key to poll_questions.id)
datetime created_at
datetime updated_at
Luego también habrá una tercera tabla para el seguimiento de quienes votaron por una respuesta para que los usuarios puedan votar solo una vez:
poll_voting_history
int id
int question_id (foreign key to poll_questions.id)
int answer_id (foreign key to poll_answers.id)
int user_id (foreign key to the id in the users table)
datetime created_at
datetime updated_at
¿Cuáles son tus pensamientos? ¿Lo estoy pensando bien?
El esquema se ve bien, y sí, también necesitarías seguir los votos de los usuarios .
Nota: la columna "votos" de la tabla poll_answers no es necesaria. Los votos se pueden determinar consultando la tabla Poll_voting_history.