Har gjort ett quiz-liknande system där besökaren svarar på några frågor.
Alla frågor ligger i en tabell och alla svar i en annan.
Hur ska jag koppla ihop frågorna med svaren om jag vill att alla svar för varje gång ska ligga som en ny post i svartabellen? Jag vill göra detta för att kunna veta vilka svar som tillhör vilka andra svar, om ni förstår? Det kanske finns något bättre sätt?
Kanske svårt att förstå men jag visar här hur jag gjort hittills så ni kanske förstår bättre:
tblSvar
--ID - räknare
--fldUserID - användarens id
--fldsvar1 - svar till fråga 1 (fldfrageid = 1)
--fldsvar2 - svar till fråga 2 (fldfrageid = 2)
--fldsvar3 osv...
--fldDatum - datum
Hur ska jag kunna koppla ihop svaren med frågorna, ifall jag vill kolla på en av användarens svar på alla frågor (inte alla gånger användaren svarat)? Finns det kanske något bättre sätt?
Jättetacksam ifall någon kan hjälpa mig, har fastnat...
Men problemet var ju att användarna kommer att svara flera gånger och hur ska man då veta vilka svar som tillhör vilka andra svar för varje gång denne har svarat?
T.ex. hur ska man veta att fråga 1 tillhör en viss fråga 2, fråga 3 etc?
Menar du att man ska datummärka alla svaren?
Kom och tänka på det att det blir ju en massa poster eftersom det är 25 frågor som ska besvaras och om varje användare svarar så blir det ju en sjuhelsikes massa poster efter att ett par användare svarat, eller hur? Det var därför jag tänkte göra så som jag tänkt i början med alla svaren i en post men jag kom inte på hur jag skulle relatera svaren till frågorna.
Går det eller är ditt sätt det enda möjliga i mitt fall?
Jo, ett datum eller något sekvensnummer behövs det. Att ha en kolumn för varje svar är inte speciellt flexibelt. T.ex. om du lägger till en ny fråga så måste du ändra tabelldefinitionen.
Hur många användare blir det?
1000 som svarar 10 gånger på alla frågor?
= 250000 poster. Låter inte speciellt mycket.
I svarstabellen skulle då
flduserid,fldSekno,fldFrageID
utgöra primärnyckel.
------------------ essentitia preter non sans multiplicandum
Okej, men sen blir det förmodligen ett problem till.
Eftersom jag ska lägga till alla svar i databasen när sista frågan är slut, blir det inte 25 SQL-satser att exekvera? Det borde väl ta ganska lång tid (använder access 2000)?
Frågorna kommer alltid vara samma så att det behövs för den delen inte göras någon ändring i designen för tabellerna vid ett senare tillfälle. Om det går att lösa det med en post istället för 25 så borde det väl gå ganska mycket snabbare att dels lägga till svaren och även hämta svaren? Men det kanske inte är möjligt att relatera svaren med frågorna sen?
Visst det tar lite längre tid att lagra svaren, men om du använder ett commandobject med parametrar så borde inte det vara så farligt.
När du hämtar data så förlorar du på att det lagras som en post. (Om du joinar tabellerna så får du alla svar för alla frågor, dvs det blir mer data att hämta.)
------------------ essentitia preter non sans multiplicandum