您现在的位置: 365建站网 > 建站教程 > 微信公众平台开发 > 24.5.1数据库设计

24.5.1数据库设计

此节有 292 人学习过     参与评论

24.5.1数据库设计
一般说来,大转盘抽奖系统中,至少需要包含以下表。
 全局配置表:用于存储系统的配置信息。
 奖品配置表:用于存储奖品名称及数量等信息。
 用户信息表:用于记录参加活动的用户信息。
 抽奖记录表:用于记录用户参加的活动的行为。
在数据库设置之前,需要创建一个数据库,这里我们的数据库的名称为“wx_dazhuanpan”,“wx”是“微信”二字拼音的首字母。“dazhuanpan”则是“大转盘”的拼音。
PHPMyAdmin的后台中,选择“Database(数据库)”标签,然后在“Create Database(创建数据库)”功能框中输入数据库的名称“wx_dazhuanpan”,编码类型选择“utf8_general_ci”,最后点击“Create(创建)”按钮。如图24-12所示。

图24-12 创建数据库
创建好数据库之后,我们开始来建表。
一般说来,一个活动的开展,总是有个开始时间和结束时间,这是系统开发过程中也要考虑的。另外,由于这是一个抽奖活动,而抽奖活动不可能给用户无限次的抽奖机会,所以还需要做一个抽奖次数限制。
我们定义一个配置表,该配置表用于存储上述配置内容。该表的建表脚本如下:

DROP TABLE IF EXISTS `wx_config`;
CREATE TABLE IF NOT EXISTS `wx_config` (
  `id` int(5) NOT NULL,
  `starttime` varchar(30) NOT NULL,
  `endtime` varchar(30) NOT NULL,
  `maxtimes` varchar(5) NOT NULL,
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

你可以使用phpMyAdmin的数据库的后台的创建表格功能来建立这个表,依次填写表名及各个字段名称、类型及其他属性。如图24-13所示。

图24-13 创建表
也可以直接在SQL运行框上使用上述脚本来运行建表。如图24-14所示。

图24-14 运行SQL脚本
建成后,全局配置表如图24-15所示。

图24-15 表格创建成功
奖品配置表则用于存储奖品信息,这些信息包括:奖品名称、奖品数量、及中奖概率。
建表的SQL脚本如下,

DROP TABLE IF EXISTS `wx_award`;
CREATE TABLE IF NOT EXISTS `wx_award` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `name` varchar(50) NOT NULL COMMENT '奖品名称',
  `total` int(11) NOT NULL COMMENT '数量',
  `prob` varchar(20) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;

奖品配置表建成之后,如图24-16所示。

图24-16 奖品配置表
用户信息表则主要用于存储用户的个人信息,这些信息包括:微信OpenID、用户姓名、用户手机号。
建表的SQL脚本如下,

DROP TABLE IF EXISTS `wx_user`;
CREATE TABLE IF NOT EXISTS `wx_user` (
  `id` int(6) NOT NULL auto_increment,
  `openid` varchar(30) NOT NULL,
  `name` varchar(16) NOT NULL,
  `mobile` varchar(15) NOT NULL,
  PRIMARY KEY  (`id`),
  UNIQUE KEY `openid` (`openid`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;

为了防止同一个人多次重复提交而导致出错,我们把其中openid设置了唯一性约束,这样可以避免出现同一人多次重复提交个人信息成功的情况。对于一些可能潜在的隐患,我们应该尽早的在设计时就防患于未然。
用户信息表建好后,如图24-17所示。

图24-17 用户信息表
抽奖纪录表则主要用于存储用户的抽奖纪录,这些信息包括:微信OpenID、奖品等级、抽奖日期、领奖状态。
建表的SQL脚本如下,

DROP TABLE IF EXISTS `wx_winner`;
CREATE TABLE IF NOT EXISTS `wx_winner` (
  `id` int(10) unsigned NOT NULL auto_increment,
  `openid` varchar(30) NOT NULL,
  `award` varchar(100) NOT NULL COMMENT '奖品等级',
  `getdate` varchar(20) NOT NULL,
  `status` tinyint(1) NOT NULL default '0' COMMENT '0未领奖,1已领奖',
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;

抽奖纪录表建好后,如图24-18所示。

图24-18 抽奖纪录表
最终,数据库中建好了4个表,如图24-19所示。

图24-19 所有表格

如对本文有疑问,请提交到交流论坛,广大热心网友会为你解答!! 点击进入论坛


发表评论 (292人查看0条评论)
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
用户名: 验证码: 点击我更换图片
最新评论
------分隔线----------------------------
微信公众平台开发目录