Ik heb in een formulier 9 vragen die met ja of nee worden beantwoord.

Ik kan dan er voor kiezen negen velden enum 'y','n' te maken
of één veld Varchar met de antwoorden comma gescheiden op geslagen.. as in y,n,y,y,n,...

Welke methode zou beter zijn?
Ik zou er voor kiezen om 9 kolommen van het type set (niet enum) te maken.
Martijn verklaar :)
Uh... waarom zou je voor negen kolommen set kiezen..
Zelf nooit gebruikt ook.. dus weer iets te leren...
of je maakt er een tinyint(1) veld van en dan is 0 nee en 1 ja
oke... ja dat kan ook...
Ik hoor jullie zeggen dat het dus toch beter is om meerder kolommen aan te maken dan één kolom met een grotere waarde...

Qua snelheid lijkt me dat enum 1/2 bites of tinyint 1 byte niet vel uitmaakt...
zie ik dat goed?
Niet meerdere waarde in één kolom!
En ook niet meerdere kolommen met een nummer!

Je slaat de antwoorden op in een tabel met bijvoorbeeld 3 kolommen, in de eerste zet je een gegeven wat je gebruikt om het bijvoorbeeld aan een gebruiker te koppelen, in de volgende welke vraag en in een volgende een y / n of een tinyint oid.

Ja meerdere kolommen is zeker slimmer. Stel nu dat je de gegeven antwoorden weer op wilt halen, als je alles in 1 kolom plaatst moet je weer bewerkingen op het gegeven in die kolom gaan uitvoeren om te antwoorden te verkrijgen. Dit hoef je niet te doen als alles in aparte kolommen staat.

Maar als je het echt goed wilt doen, maak je een aparte tabel met alle vragen erin. In de tabel met antwoorden komen dan allemaal records te staan met een user_id, vraag_id en het antwoord.

vragen
---------
id
vraag

users
------
id
naam

antwoorden
--------------
id
user_id
vraag_id
antwoord

user_id gebruik ik in dit geval om de antwoorden van verschillende gebruikers uit elkaar te houden, maar je zou hier natuurlijk net zo goed een ip adres voor kunnen gebruiken. En als je het anoniem wilt, kun je het zelfs weglaten.
@ BOAZ
Ow... hehe, een heel andere aanpak.
Plots zie ik ook andere moeglijkheden want ik heb namelijk drie support formulieren met meerdere vragen... oke...

Dit is een supper oplossing!
En dit is nou de kracht van normaliseren...

Elwin
Elwin schreef op 24.11.2006 14:41
En dit is nou de kracht van normaliseren...

Elwin
Precies! Door te normaliseren krijg je vanzelf het antwoord op deze vraag.

Reageren