Usage statistics.

How many users do you have, what demographic data do you need, how
many choices are there on each, how many different ways to vote were
there, how are you recording the votes, how often do you expect it to
be queried, and how? Any way you recorded the votes, you can probably
extract a fairly well rolled-up version, and serve up more specific
rollups from there. If worst comes to worst you could use memcache or
some similar thing to reduce database traffic.

For instance, suppose you were polling on the favorite season, and you
want to break it down by age, sex, race, educational level, income
bracket, employment status, marital status, shoe size, hair color,
handedness, and location (defined as nearest integer latitude and
longitude), etc. etc. etc. You could store them in a table with
season, each demographic factor (extracted from the user record or
input at voting time), and a count of how many such people voted for
that season. (Do NOT store just vote and user ID, to extract the
demographic data later on demand, if the users might ever care about
the votes being secret! Store who voted, *separately*.) Then it
should be easy to pull out a breakdown by each demographic sector, or
even a combination. (Just be aware that with a small enough sample
size, it may thus be possible to extract how certain individuals
voted, or reveal other private data.)

-Dave