So, the other day I was asked by a developer to come up with a
table to tally votes. Basically, there are 6 choices, and
customers can vote once per day. I asked if there were any other
constraints, and there were none. I specifically asked if they
wanted once per calendar date, or ‘it has to be 24 hours since
the last vote’; they wanted ‘once per calendar date’. And
updating the current day’s vote is not allowed. Once the vote is
in, it cannot be changed.
So I came up with a simple table:
CREATE TABLE `ManOfMonth` (
`uid` int(10) unsigned NOT NULL default ‘0′,
`voteDate` date NOT NULL default ‘0000-00-00′,
`uidVoteFor` int(10) unsigned NOT NULL default ‘0′,
PRIMARY KEY (`uid`,`voteDate`),
KEY `countVotes` (`uidVoteFor`)
)
There’s no need for a timestamp, and you can select now() into
the voteDate part, and MySQL truncates the data for you (we’re
using …
[Read more]