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
Users
es para almacenar usuarios registrados. - tabla
Questions
es para almacenar todas sus preguntas.- Tiene
is_active
para que pueda mostrar selectivamente solo las preguntas activas (usandoWHERE is_active = '1'
)
- Tiene
- tabla
question_choices
es para almacenar todas las opciones disponibles. Tieneis_right_choice
que define qué opción es la respuesta correcta para una pregunta en particular. - Tabla
User_question_answers
es para almacenar la respuesta de su usuario.- Tiene
is_right
para 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_time
solo para notar cuándo ese usuario en particular responde la pregunta.
- Tiene