Comenzaría con 4 tablas simples:
Usuarios
- user_id auto integer
- regtime datetime
- username varchar
- useremail varchar
- userpass varchar
Preguntas
- question_id auto integer
- question varchar
- is_active enum(0,1)
Opciones_de_preguntas
- choice_id auto integer
- question_id Questions.question_id
- is_right_choice enum(0,1)
- choice varchar
Usuario_pregunta_respuestas
- user_id Users.user_id
- question_id Questions.question_id
- choice_id Question_choices.choice.id
- is_right enum(0,1)
- answer_time datetime
Mi opinión sobre el diseño de esta mesa es:
- tabla
Userses para almacenar usuarios registrados. - tabla
Questionses para almacenar todas sus preguntas.- Tiene
is_activepara que pueda mostrar selectivamente solo las preguntas activas (usandoWHERE is_active = '1')
- Tiene
- tabla
question_choiceses para almacenar todas las opciones disponibles. Tieneis_right_choiceque define qué opción es la respuesta correcta para una pregunta en particular. - Tabla
User_question_answerses para almacenar la respuesta de su usuario.- Tiene
is_rightpara una búsqueda más rápida, para ver si esa opción de pregunta y respuesta en particular es correcta (segúnis_right_choice) definido previamente). - También tiene
answer_timesolo para notar cuándo ese usuario en particular responde la pregunta.
- Tiene