sql >> Databasteknik >  >> RDS >> Mysql

Databasdesign för utveckling av "Quiz" webbapplikation med PHP och MySQL

Jag skulle börja med fyra enkla tabeller:

Användare

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

Frågor

- 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

Min tanke om denna bordsdesign är:

  • tabell Users är för att lagra registrerade användare.
  • tabell Questions är till för att lagra alla dina frågor.
    • Den har is_active så att du selektivt endast kan visa aktiva frågor (med WHERE is_active = '1' )
  • tabell question_choices är för att lagra alla tillgängliga alternativ. Den har is_right_choice som definierar vilket val som är det rätta svaret på en viss fråga.
  • Tabell User_question_answers är för att lagra svar från din användare.
    • Den har is_right för snabbare uppslag, för att se om just det valet av fråga och svar är rätt (baserat på is_right_choice tidigare definierat).
    • Den har också answer_time bara för att notera när just den användaren svarar på frågan.


  1. Hur man kommenterar i SQL

  2. Problem med att komma åt en förmodat inaktiverad funktion i CODEIGNITER

  3. Finns det något sätt att hämta vydefinitionen från en SQL Server med vanlig ADO?

  4. Introducerar ny funktion - Spotlight Cloud Database Growth Report