2010-02-15 21 views
19

¿Cuál es el mejor esquema de base de datos para las encuestas? ¿La relación uno a muchos es buena para esto? Estoy pensando en tener dos tablas:Esquema de base de datos de sondeo

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 

Entonces también habría tercera tabla para el seguimiento de los que votaron por una respuesta para que los usuarios son capaces de votar una sola 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 sus pensamientos ? ¿Estoy pensando en eso, verdad?

+0

¿Sus usuarios de este esquema particular están enviando sus propias respuestas personalizadas? o de un conjunto de respuestas pregeneradas? – cwiggo

+0

Puede agregar una columna 'order' en poll_answers si quiere que se ordenen las respuestas – WoLfPwNeR

Respuesta

5

Nota: la columna "votos" de la tabla poll_answers no es necesaria. Los votos se pueden determinar consultando la tabla Poll_voting_history.

2

Creo que question_id en poll_voting_history no es necesario también, ya que cada respuesta apunta a una pregunta, por lo tanto, en base a un answer_id puede obtener el question_id al que pertenece.

Cuestiones relacionadas