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_active
para 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_choice
que define qual escolha é a resposta certa para determinada pergunta. - Tabela
User_question_answers
é para armazenar a resposta do seu usuário.- Tem
is_right
para uma pesquisa mais rápida, para ver se essa pergunta e escolha de resposta em particular estão corretas (com base emis_right_choice
definido anteriormente). - Também tem
answer_time
apenas para observar quando esse usuário específico responde à pergunta.
- Tem