Mysql
 sql >> Database >  >> RDS >> Mysql

Progettazione di database per lo sviluppo di applicazioni Web 'Quiz' utilizzando PHP e MySQL

Vorrei iniziare con 4 semplici tabelle:

Utenti

- user_id        auto integer
- regtime        datetime
- username       varchar
- useremail      varchar
- userpass       varchar

Domande

- question_id    auto integer
- question       varchar
- is_active      enum(0,1)

Scelte_domande

- 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

Il mio pensiero su questo design del tavolo è:

  • tabella Users serve per memorizzare l'utente registrato.
  • tabella Questions serve per memorizzare tutte le tue domande.
    • Ha is_active in modo da poter visualizzare selettivamente solo le domande attive (usando WHERE is_active = '1' )
  • tabella question_choices serve per memorizzare tutte le opzioni disponibili. Ha is_right_choice che definisce quale scelta è la risposta giusta per una domanda particolare.
  • Tabella User_question_answers serve per memorizzare la risposta del tuo utente.
    • Ha is_right per una ricerca più rapida, per vedere se quella particolare scelta di domanda e risposta è corretta (basata su is_right_choice precedentemente definito).
    • Ha anche answer_time solo per notare quando quel particolare utente risponde alla domanda.