Eu começaria com 4 tabelas simples:
Usuários
- user_id auto integer
- regtime datetime
- username varchar
- useremail varchar
- userpass varchar
Perguntas
- question_id auto integer
- question varchar
- is_active enum(0,1)
Question_choices
- choice_id auto integer
- question_id Questions.question_id
- is_right_choice enum(0,1)
- choice varchar
User_question_answers
- user_id Users.user_id
- question_id Questions.question_id
- choice_id Question_choices.choice.id
- is_right enum(0,1)
- answer_time datetime
Minha opinião sobre este design de mesa é:
- tabela
Usersé para armazenar o usuário registrado. - tabela
Questionsé para armazenar todas as suas perguntas.- Tem
is_activepara que você possa exibir seletivamente apenas perguntas ativas (usandoWHERE is_active = '1')
- Tem
- tabela
question_choicesé para armazenar todas as opções disponíveis. Temis_right_choiceque define qual escolha é a resposta certa para determinada pergunta. - Tabela
User_question_answersé para armazenar a resposta do seu usuário.- Tem
is_rightpara uma pesquisa mais rápida, para ver se essa pergunta e escolha de resposta em particular estão corretas (com base emis_right_choicedefinido anteriormente). - Também tem
answer_timeapenas para observar quando esse usuário específico responde à pergunta.
- Tem