webForumDet fria alternativet

Tips på databasdesign för quiz (php/mySQL)?

1 svar · 396 visningar · startad av xtreme

xtremeMedlem sedan juli 20002 056 inlägg
#1

På min sida ska jag ha en guiz och det ska vara möjligt för andra användare (användare måste logga in och finns i en annan tabell) att göra samma guiz med samma frågor så att man kan jämföra resultatet.

Lite information om mitt quiz:

  • Flera (3) svarsalternativ med ett korrekt svar (tänk radio button)
  • Det ska slumpas ut 10 frågor inom en kategorin som användaren väljer
  • En annan användare ska kunna få tillgång till samma länk och svara på exakt samma tio frågor
  • De två användarna som svarat på samma tio frågor ska kunna jämföra sina resultat.

Några alternativ jag tänkt på där det fetmarkerade är tabellnamnet och det under är kolumner. Era förslag behöver dock inte alls vara likt detta.

Alt1, Varje ämne är en egen tabell med frågan, tre alternativ samt en kolumn med rätt svar.
food and drink
Question
Choice1
Choice2
Choice2
Answer

Alt2, likt alt1 men med en extra kolumn som heter category för att skilja de olika kategorierna åt. Här är alla frågor och svar i en stor tabell.
Quiz
Category
Question
Choice1
Choice2
Choice2
Answer

Alt3, att dela upp allt i olika tabeller
Quizes:
id
name (namnet på ämnet)

Questions:
id
quiz1 (Alternativ som finns att välja mellan)
quiz2
quiz3

Answers:
id
Correct_Answers (det rätta svaret)

User
Den här tabellen finns redan eftersom användaren måste logga in.

Fredde MannenMedlem sedan nov. 20014 054 inlägg
#2

Skulle nog göra det mer åt alternativ 3, speciellt om det kan hända att quizen byggs ut.

Quiz
---------------------------------
ID | Name

Questions
---------------------------------
ID | QuizID

QuestionOptions (Ex. om det skulle bli aktuellt att ha fler än 3 alternativ på vissa frågor)
---------------------------------
ID | QuestionId | Description

QuestionAnswers
---------------------------------
ID | QuestionId | QuestionOptionId

UsersQuestionAnswers
---------------------------------
ID | QuestionId | QuestionOptionId | UserId

Kanske?!

133 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
130 ms — hämta tråd, inlägg och bilagor (db)