mysql网络投票系统设计_PHP+MySQL投票系统的设计和实现分享

系统不大,完成这个系统的过程我分了三个步骤

•数据库设计

•系统框架设计

•前端美化

数据库的设计

设计三张表:投票结果统计表(count_voting),投票人记录表(ip_votes),用户表(user)

投票结果统计表用于统计最后的投票记录,我给它弄了4个字段:被投票项的名称(SelectName),被投票项标签名(LabelName)(起到分类的作用),票数(CountVotes)。

投票人记录表用于登记投票人的ip(IP),地理位置(Location),投票时间(VoteTime),被投票项名称(SelectName)。然后我还给它加一个ID。

用户表主要用于给管理员用的,包含用户名(name)和密码(passwd)。

生成表的sql脚本如下:

--

-- 表的结构 `count_voting`

--

DROP TABLE IF EXISTS `count_voting`;

CREATE TABLE IF NOT EXISTS `count_voting` (

`SelectName` varchar(40) NOT NULL,

`LabelName` varchar(40) NOT NULL,

`CountVotes` bigint(20) unsigned NOT NULL,

UNIQUE KEY `SelectName` (`SelectName`),

KEY `CountVotes` (`CountVotes`),

KEY `CountVotes_2` (`CountVotes`),

KEY `CountVotes_3` (`CountVotes`)

) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='投票统计表';

-- --------------------------------------------------------

--

-- 表的结构 `ip_votes`

--

DROP TABLE IF EXISTS `ip_votes`;

CREATE TABLE IF NOT EXISTS `ip_votes` (

`ID` bigint(20) unsigned NOT NULL auto_increment COMMENT '投票人序号:自增',

`IP` varchar(15) NOT NULL COMMENT '投票人IP',

`Location` varchar(40) NOT NULL COMMENT '投票人位置',

`VoteTime` datetime NOT NULL,

`SelectName` varchar(40) NOT NULL,

PRIMARY KEY (`ID`),

KEY `ID` (`ID`),

KEY `SelectName` (`SelectName`)

) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=4 ;

--

-- 触发器 `ip_votes`

--

DROP TRIGGER IF EXISTS `vote_count_after_insert_tr`;

DELIMITER //

CREATE TRIGGER `vote_count_after_insert_tr` AFTER INSERT ON `ip_votes`

FOR EACH ROW UPDATE count_voting SET CountVotes = CountVotes + 1 WHERE SelectName = NEW.SelectName

//

DELIMITER ;

-- --------------------------------------------------------

--

-- 表的结构 `user`

--

DROP TABLE IF EXISTS `user`;

CREATE TABLE IF NOT EXISTS `user` (

`name` varchar(10) NOT NULL COMMENT '管理员用户名',

`passwd` char(32) NOT NULL COMMENT '登录密码MD5值'

) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='用户表';

--

-- 转存表中的数据 `user`

--

INSERT INTO `user` (`name`, `passwd`) VALUES

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值