Vinnaren i pepparkakshustävlingen!
2013-09-17, 20:47
  #1
Medlem
Ska göra en webbsida med en stor survey/undersökning, kommer vara runt 100 frågor och svaren kommer att sparas i databasen.

Förmodar att det är en dum idé att skapa en massiv tabell som innehåller svaren för varje undersökning. Varje kolumn skulle så fall motsvara ett svar från undersökningen. d.v.s. SurveyID, Answer1, Answer2, Answer3.

Några förslag på databasdesign?
Citera
2013-09-17, 21:58
  #2
Moderator
Protons avatar
Webbutveckling och javascript --> Databaser
/Moderator
Citera
2013-09-17, 22:01
  #3
Moderator
Protons avatar
Citat:
Ursprungligen postat av _x3m_
Ska göra en webbsida med en stor survey/undersökning, kommer vara runt 100 frågor och svaren kommer att sparas i databasen.

Förmodar att det är en dum idé att skapa en massiv tabell som innehåller svaren för varje undersökning. Varje kolumn skulle så fall motsvara ett svar från undersökningen. d.v.s. SurveyID, Answer1, Answer2, Answer3.

Några förslag på databasdesign?
Det du föreslår skulle få en stor WTF-stämpel på sig iaf.

Det första du måste fråga dig är vad du ska kunna hålla reda på för data. Ska du hålla reda på vem som svarat, eller endas svaren på frågorna exempelvis?

Ska det i vissa fall gå att svara mer än en sak på en fråga?

Din frågeställning är för närvarande för tunn för att kunna ge hintar om lämplig design, du måste ta ställning till ovanstående frågor först.
Citera
2013-09-17, 23:29
  #4
Medlem
Citat:
Ursprungligen postat av Proton
Det du föreslår skulle få en stor WTF-stämpel på sig iaf.

Det första du måste fråga dig är vad du ska kunna hålla reda på för data. Ska du hålla reda på vem som svarat, eller endas svaren på frågorna exempelvis?

Ska det i vissa fall gå att svara mer än en sak på en fråga?

Din frågeställning är för närvarande för tunn för att kunna ge hintar om lämplig design, du måste ta ställning till ovanstående frågor först.

Vill kunna hålla reda på frågorna, svaren och kort om användaren. Mao känns det nu som 3 tabeller.
Om användaren ska det bara vara ett användarnamn och email, dvs inget avancerat.
Kommer använda mig av både radio-knappar, checkboxar och dropboxar men inga fria textfält som svarsalternativ.

Kort kan det se ut såhär:
Namn (textbox)
E-mail (textbox)
Vilken är din favoritfärg (5 radioknappar där man bara kan välja en färg)
Vad tycker du om för mat (5 checkboxar där man kan kryssa i den mat man gillar, flera val möjliga)

Något mer som ska förtydligas? Tips på design?
Citera
2013-09-18, 14:37
  #5
Medlem
Nåt sånt här kanske?

User
ID (PK)
Name
Mail

UserAnswer
AnswerID (PK/FK)
UserID (PK/FK)

Answer
ID (PK)
Answer
QuestionID (FK)

Question
ID (PK)
Question
Citera
2013-09-18, 14:44
  #6
Medlem
dethalvabarnets avatar
En tabell med svar,
En tabell med frågor,
En tabell med användare,
En tabell med undersökning,(återanvända databasupplägget kanske till flera undersökningar genom att gruppera frågor med denna)
En tabell med besvarade frågor av användare.

Var ett tag sen jag modelerade en databas, börjar känna mig rostig.
__________________
Senast redigerad av dethalvabarnet 2013-09-18 kl. 14:44. Anledning: edit: blah poussard var före
Citera
2013-09-23, 19:51
  #7
Medlem
Har nu kommit upp med en databas design samt kommit fram till lite mer vad jag vill ha. Databasen ska innehålla:
Användare (de som tar undersökningen)
Frågorna
Användarens svar på frågorna
För att kunna spotta ut frågor i klump är de sorterade i grupper
Frågorna har en typ/type. Typen anger om användaren ska svara med hjälp av checkbox, radiobutton eller textruta.

survey
servey_id
servey_name

survey_answers
answer_id
question_id
user_id
answer_body

survey_questions
question_id
servey_id
question_body
question_group
question_type

users
user_id
user_name
email


Några kommentarer?
Citera
2013-09-24, 10:07
  #8
Medlem
dethalvabarnets avatar
Är inte typ question_type känns onödig.

Svar-tabellen är felaktig. Den ska bara innehålla de svar som finns till en fråga, inte svar som använder gör till frågan.
Se Poussards inlägg.

Du kanske vill ha med tidstämplar dessutom i databasen, t.ex. när undersökningen startats , när en en survery har besvarats av en användare(du kan använda datat för att t.ex. se hur lång tid det tog för individuella/genomsnittet av användare för att genomföra undersökningen, etc, etc).
Citera

Stöd Flashback

Flashback finansieras genom donationer från våra medlemmar och besökare. Det är med hjälp av dig vi kan fortsätta erbjuda en fri samhällsdebatt. Tack för ditt stöd!

Stöd Flashback