简易在线投票系统(php)——数据库

本文详细介绍了数据库中关于用户账号、投票基本信息及投票数据存储的三张表结构设计,包括用户账号表(users)、投票信息表(vote)和投票统计表(votetitle)。重点阐述了投票系统的实现原理,涉及投票编号、发起人、投票时间、投票结果公开与否、选项设置(单选或多选)等关键要素。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这个项目的数据库中有三张表,分别是:关于用户账号的users;关于投票基本信息的vote;关于投票数据存储的votetitle

1、users

共有三个表项

uid 这是账户的编码,由数据库自动生成,用来分辨账号

sql语句:

CREATE TABLE IF NOT EXISTS `users` (
  `uid` int(10) NOT NULL AUTO_INCREMENT,
  `username` varchar(40) CHARACTER SET utf8 NOT NULL,
  `password` varchar(40) CHARACTER SET utf8 DEFAULT NULL,
  PRIMARY KEY (`uid`),
  UNIQUE KEY `username` (`username`)
) 

2、vote

共有9个表项,对整个投票的各个基本信息进行了设定

vid  这是投票的编号,由数据库自动生成,用来分辨投票

vname  这是投票的名称,有发起者输入

starttime  发起投票的时间,由后台自动输入

uid  发起人的账号编码,用来和发起人联系在一起

vintro  发起人输入的关于投票活动的简介,将会显示用以说明投票的目的和内容

open  发起人确定的投票结果是否公开,0为不公开,1为公开,默认为0。如果确定公开,则其他投票者在投票完成后会自动跳转到结果页面,而如果选择不公开,投票完成后则会跳转到首页。投票结果的显示对于发起人是没有影响的,发起人可以随时通过我发起的投票直接查看投票结果统计数据。

more  确定投票是否为多选,0为单选,1为多选,默认为0

max  最多可以选择几项,默认为1,即单选,无论单选还是多选,都适用,但只在多选时起作用

min  最少可以选几项,默认为1,设定同max,但数值不能搞过max

sql语句:

CREATE TABLE IF NOT EXISTS `vote` (
  `vid` int(10) NOT NULL AUTO_INCREMENT,
  `vname` varchar(20) NOT NULL,
  `starttime` varchar(20) NOT NULL,
  `uid` int(10) NOT NULL,
  `vintro` varchar(120) NOT NULL,
  `open` int(2) NOT NULL DEFAULT '0',
  `more` int(2) NOT NULL DEFAULT '0',
  `max` int(10) NOT NULL DEFAULT '1',
  `min` int(10) NOT NULL DEFAULT '1',
  PRIMARY KEY (`vid`)
)

3、votetitle

共有4个表项,用来储存投票的统计信息,和各个选项

由于我们没法确定一共还有多少个选项,所以,在后台中将选项信息和票数统计分别整合成一个字符串,并将字符串保存在数据库中,以方便存取。

vid  这是投票的编号,由数据库自动生成,用来分辨投票

itemcount  投票中选项的个数

item  选项信息字符串

num  票数信息字符串

sql语句:

CREATE TABLE IF NOT EXISTS `votetitle` (
  `vid` int(10) NOT NULL,
  `itemcount` int(10) NOT NULL,
  `item` varchar(100) NOT NULL,
  `num` varchar(100) DEFAULT NULL
)


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值