本文章详细的介绍了关于投票系统实现原理与实现代码,有需要的朋友可参考一下。
数据库的设计
设计三张表:投票结果统计表(count_voting),投票人记录表(ip_votes),用户表(user)
投票结果统计表用于统计最后的投票记录,我给它弄了4个字段:被投票项的名称(SelectName),被投票项标签名(LabelName)(起到分类的作用),票数(CountVotes)。
投票人记录表用于登记投票人的ip(IP),地理位置(Location),投票时间(VoteTime),被投票项名称(SelectName)。然后我还给它加一个ID。
用户表主要用于给管理员用的,包含用户名(name)和密码(passwd)。
生成表的sql脚本如下:
代码如下 | 复制代码 |
DROP TABLE IF EXISTS `count_voting`; -- -------------------------------------------------------- -- DROP TABLE IF EXISTS `ip_votes`; -- -- -------------------------------------------------------- -- DROP TABLE IF EXISTS `user`; -- INSERT INTO `user` (`name`, `passwd`) VALUES -- -- |
从脚本中可以看出,我创建了一个触发器,当往ip_votes表中插入数据的时候就给count_voting表中的CountVotes字段加1。还能后出最后一句是设置外部关联字。
框架设计
OperatorDB类用于操作数据库,OperatorVotingDB类用于该系统特定的操作集合。
使用PDO操作数据库,我它简单的封装一下:
代码如下 | 复制代码 |
public function __construct() |
把连接数据库的信息封装进去方便后续的操作。
代码如下 | 复制代码 |
public function __construct() /** /** /** /** /** /** |
1 2 3