这个项目的数据库中有三张表,分别是:关于用户账号的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
)