wat is beter?

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Auke

Auke

24/11/2006 14:14:00
Quote Anchor link
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?
 
PHP hulp

PHP hulp

11/05/2024 11:16:19
 
Martijn B

Martijn B

24/11/2006 14:16:00
Quote Anchor link
Ik zou er voor kiezen om 9 kolommen van het type set (niet enum) te maken.
 
Eris -

Eris -

24/11/2006 14:29:00
Quote Anchor link
Martijn verklaar :)
 
Auke

Auke

24/11/2006 14:29:00
Quote Anchor link
Uh... waarom zou je voor negen kolommen set kiezen..
Zelf nooit gebruikt ook.. dus weer iets te leren...
 
Jelle -

Jelle -

24/11/2006 14:30:00
Quote Anchor link
of je maakt er een tinyint(1) veld van en dan is 0 nee en 1 ja
 
Auke

Auke

24/11/2006 14:32:00
Quote Anchor link
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?
Gewijzigd op 01/01/1970 01:00:00 door Auke
 
Bo az

Bo az

24/11/2006 14:35:00
Quote Anchor link
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.
 
Joren de Wit

Joren de Wit

24/11/2006 14:38:00
Quote Anchor link
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.
 
Auke

Auke

24/11/2006 14:38:00
Quote Anchor link
@ 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!
Gewijzigd op 01/01/1970 01:00:00 door Auke
 
Elwin - Fratsloos

Elwin - Fratsloos

24/11/2006 14:41:00
Quote Anchor link
En dit is nou de kracht van normaliseren...

Elwin
 
Frank -

Frank -

24/11/2006 14:43:00
Quote Anchor link
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.
 
Auke

Auke

24/11/2006 14:44:00
Quote Anchor link
Juist... heel goed..
Normaliseren.. ik ben d'r nog geen kei in maar ik weet hoe belangrijk het is
vandaar ook de vraag.

Echt heel mooi de antwoorden die ik heb gekregen.

Ik ga voor drie tabellen

support_user
support_quest
support_answer

en als vierde tabel;
support followup

daar komen de vevolg emails in staan die er tussen de support en klant worden geschreven.
 
Lissy Pixel

Lissy Pixel

24/11/2006 15:08:00
Quote Anchor link
Gewoon doen en dan leren van je fouten :)
We zijn allemaal ooit is begonnen en je gaat vanzelf dingen herkennen en dan weer gebruiken en/of dingen verbeteren omdat je kennisniveau omhoog gaat.
Suc6 in ieder geval :)
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.