SQL >
Heyhey, ik beheer een website waar bezoekers een contactformulier kunnen opstellen. Daar zit een formbuilder bij waarmee zij hun contactformulier zonder HTML kennis kunnen aanmaken.
Het client-side gedeelte bestaat al; bezoekers klikken eerst welk type inputveld ze willen toevoegen aan hun contactformulier (textveld, textarea, checkbox, etc), vervolgens vullen ze in welke vraag het veld moet beantwoorden ("Wat is uw lievelingskleur, bijv") en ook de antwoordmogelijkheden (bij bij een radiobuton; groen, blauw, rood, anders). Zodra de gebruiker op toevoegen klikt wordt het input veld aan het contactformulier toegevoegd. Zodra het formulier klaar is, is het als HTMLbestand te downloaden.
Nu wil ik ook de mogelijkheid bieden om de contactformulieren op te slaan. Belangrijk punt hierbij is dat de contactformulier velden (én hun antwoordmogelijkheden) allebei op volgorde worden opgeslagen.
Ik zit aan 2 manieren te denken:
1- een tabel met de velden:
contactformID (int) , emailto, contactform_velden (text)
waarin 'contactform_velden' gesplitst wordt met een delimeter (::)per vraag, en daarin ook delimeters (//) per subvraag zitten. Bijv:
::TEXT=Wat is uw naam?::RADIO=Wat is uw lievelingskleur?//Rood//Groen//Blauw::
Maar dan met delimeters die niet in de vraag gebruikt kunnen worden.
2. 3 tabellen:
- contactform
contactformid, emailto
- contactform_question
questionid, questiontype, parent_contactformid, questionstr, question_order
- contactformquestion_options
option_id, parent_questionid, optionstr, option_order
Bijv:
-contactform
123, 'jan@bla.nl
- contactform_question
1, 'TEXT, 123, "Wat is uw leeftijd?", 0
2, 'RADIO', 123, "Wat is uw lievelingskleur?",1
- contactformquestion_options
1, 2, "Blauw",1
2, 2, "Rood",3
3, 2, "Groen",2
Methode 2 lijkt me qua SQL er veel beter uitzien, maar ik weet niet welke methode het in PHP ook makkelijker maakt om de form op te stellen.
Wat vinden jullie? Hoe lossen jullie een probleem op waarbij SQL rijen op volgorde geplaatst moeten worden, en aan veel wijzigingen onderhevig zijn?
grz chiel
(Dit bericht is het laatst bewerkt op 16-02-2010 om 13:08:23 door michielh.)
|