Hudzilla.org - the homepage of Paul Hudson
Contents > Practical PHP > Creating a poll Wish List | Report Bug | About Me ]

22.1.3     Analysis: Poll v2

This is NOT the latest copy of this book; click here for the latest version.

Our first attempt to create a web poll certainly works fine, but what if someone's favourite film is Pride & Prejudice, or The Matrix? In a multiple choice poll, there are always going to be people who want to complain about a lack of options (unless it is a straight yes/no question), but there are many situations when just having three possible answers is not enough.

To cope with this scenario we need to adjust the manner in which we've been thinking about our poll answer possibilities - the previous design had each answer physically attached to each question, which meant we always had a limited number of questions. Sure, we could adjust the design so that we had Answer4, Answer 5...Answer63, Answer64, etc, but that is both wasteful and sloppy programming.

A far neater and more flexible solution is to use normalisation to split off the answers from the questions, creating a table for poll answers. Using this method we would attach answers to their questions through the ID primary key in the pollquestions table, which theoretically gives us a flexible number of answers to each question.





<< 22.1.2 Development: creating the simplest poll   22.1.4 Putting Poll v2 into action >>
Table of Contents
Want to see this stuff in print? PHP in a Nutshell takes the core topics covered here, adds in thousands of edits from the editorial team and myself, and combines them to make an unbeatable reference for PHP programmers at all levels.



My latest book has hundreds more tips on how to use PHP, Apache, and MySQL, plus Perl, Python, shell scripts, performance tuning, and more!



Top-right shadow
 
Bottom-left shadow Bottom shadow

Comments from other readers
Be the first to add a comment to this chapter!



Add comment
Please note that by posting a comment here you are committing it to the public domain. This is important so that others can make use of your code themselves, and also so that I can incorporate helpful notes directly into the main text. Comments are limited to 2000 characters in length.

If you are reporting an error in the content, please tell me directly.

Your name/email address:
Your comment:
 
Now, in order to verify that you're a real person, please answer this simple question: what is two plus six?
The answer is:
(please write in
numbers, eg 19)


Top-right shadow
 
Bottom-left shadow Bottom shadow