秒杀技术实现细节 PHP
来源:互联网 发布:mac总是显示flash过期 编辑:程序博客网 时间:2024/04/30 22:45
1.创建关键表
CREATE TABLE `user_zj` (
`zj_id` int(10) NOT NULL AUTO_INCREMENT,
`user_join_id` int(10) NOT NULL COMMENT '用户报名id',
`zj_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
`activity_id` int(10) NOT NULL,
`version` int(10) DEFAULT NULL COMMENT '版本信息',
PRIMARY KEY (`zj_id`)
) ENGINE=MyISAM AUTO_INCREMENT=74 DEFAULT CHARSET=utf8 COMMENT='用户中奖表';
CREATE TABLE `user_join` (
`user_join_id` int(10) NOT NULL AUTO_INCREMENT,
`user_id` int(11) NOT NULL,
`activity_id` int(11) NOT NULL COMMENT '商品活动id',
`join_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
`client` varchar(11) NOT NULL,
`mobile` varchar(11) NOT NULL,
PRIMARY KEY (`user_join_id`)
) ENGINE=MyISAM AUTO_INCREMENT=334 DEFAULT CHARSET=utf8 COMMENT='用户报名表';
CREATE TABLE `user_activity` (
`activity_id` int(10) NOT NULL AUTO_INCREMENT,
`goods_sn` varchar(20) NOT NULL,
`goods_id` int(10) NOT NULL,
`stage_index` smallint(2) NOT NULL,
`start_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
`create_time` int(4) NOT NULL COMMENT '上架时间',
`origin_price` float(6,2) NOT NULL,
`activity_price` float(6,2) NOT NULL COMMENT '活动秒杀价格',
`goods_name` varchar(200) NOT NULL,
`goods_desc` text COMMENT '商品描述',
`goods_pic` varchar(200) NOT NULL,
`limit_number` smallint(5) NOT NULL COMMENT '限抢名额',
`status` tinyint(1) NOT NULL DEFAULT '0' COMMENT '1上架,0下架',
PRIMARY KEY (`activity_id`),
UNIQUE KEY `stage_index` (`stage_index`),
KEY `goods_sn` (`goods_sn`)
) ENGINE=MyISAM AUTO_INCREMENT=79 DEFAULT CHARSET=utf8 COMMENT='商品活动表';
2.关键SQL语句
在user_activity表中获取抢购名额,在user_zj表中获取中奖记录数量。如果达到抢购名额,则抢购失败,按抢购时间
顺序,先到先得的方案。
$sql="select max(version) from user_zj ";$version = $this->db->query($sql);
$data['version'] = $version+1;
$sql="INSERT INTO user_zj (user_join_id,activity_id,version) SELECT {$data['user_join_id']},{$data['activity_id']},{$data['version']} FROM DUAL WHERE NOT EXISTS (SELECT * FROM user_zj WHERE version = {$data['version']})";$this->db->query($sql);$insert_id=$this->db->insert_id();if($insert_id){ $this->ajaxReturn('0X0000','true','恭喜你获得秒杀价资格!');}else{ $this->ajaxReturn('0X0009','false',"没有秒杀到!");}
- 秒杀技术实现细节 PHP
- php实现商城秒杀
- 商品秒杀细节
- php技术细节
- php技术细节
- PHP 实现类似商品秒杀计时
- 基于PHP+redis的秒杀实现
- php结合redis实现秒杀2
- 秒杀技术
- Webgis 打印实现技术细节
- SOA 实现的技术细节
- php秒杀
- php redis秒杀
- php 关于秒杀
- php 秒杀
- 关于抢购,秒杀的一些细节
- PHP结合redis实现秒杀活动大并发
- PHP加JS实现商品秒杀倒计时
- ios UIView的回调方法
- ContentProvider简介
- 动态库调用静态库示例讲解
- Kali Linux 网络扫描秘籍 第七章 Web 应用扫描(二)
- DAY24:leetcode #66 Plus One
- 秒杀技术实现细节 PHP
- 【CG物理模拟系列】弹性体模拟--Position-based法之Shape Matching(代码实现)
- Scala学习——高阶函数
- YARN的基本原理与功能组件简介
- [bzoj1576] [Usaco2009 Jan]安全路经Travel
- Leetcode 66 Plus One
- ios 字符串的一些操作
- 解决chrome浏览器不支持Ajax本地访问
- 浅谈SVM