##版本升级分析及数据表设计
学习要点:
1. 版本升级分析
2. 掌握如何设计版本升级数据表
![](https://box.kancloud.cn/beb9f9d75acfce932ce185c1d4e444cd_1254x642.png)
Web升级:由开发工程师进行代码的修改上传的操作;
App更新:由用户自行更新版本;
![](https://box.kancloud.cn/abb779fe86a39869a80dd3cc7937d96f_603x438.png)
初始化接口 init.php 参数
| |
|---|---|
| app_id | 客户端分类ID,如安卓 pad等 |
| version_id | 版本号 |
```sql
/**
* version_upgrade 版本升级信息表
*/
CREATE TABLE `version_upgrade` (
`id` smallint(4) unsigned NOT NULL AUTO_INCREMENT,
`app_id` smallint(4) unsigned NOT NULL DEFAULT '0' COMMENT '客户端设备id 1安卓pad',
`version_id` smallint(4) unsigned DEFAULT '0' COMMENT '大版本号id',
`version_mini` mediumint(8) unsigned DEFAULT '0' COMMENT '小版本号',
`version_code` varchar(10) DEFAULT NULL COMMENT '版本标识 1.2',
`type` tinyint(2) unsigned DEFAULT NULL COMMENT '是否升级 1升级,0不升级,2强制升级',
`apk_url` varchar(255) DEFAULT NULL,
`upgrade_point` varchar(255) DEFAULT NULL COMMENT '升级提示',
`status` tinyint(1) DEFAULT NULL,
`create_time` int(11) NOT NULL,
`update_time` int(11) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;
INSERT INTO `muke`.`version_upgrade` (`id`, `app_id`, `version_id`, `version_mini`, `version_code`, `type`, `apk_url`, `upgrade_point`, `status`, `create_time`, `update_time`) VALUES ('1', '1', '2', '1', '2.1', '1', 'http://imooc.com', '有新功能了,快来更新', '1', '0', '0');
```
```
/**
* app表 客户端表
*/
CREATE TABLE `app` (
`id` smallint(4) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键',
`name` varchar(10) DEFAULT NULL COMMENT 'APP类型名称 如:安卓手机',
`is_encryption` tinyint(1) NOT NULL DEFAULT '0' COMMENT '是否加密 1加密 0不加密',
`key` varchar(20) NOT NULL DEFAULT '0' COMMENT '加密key',
`image_size` text COMMENT '按json_encode存储',
`create_time` int(11) NOT NULL COMMENT '创建时间',
`update_time` int(11) NOT NULL COMMENT '更新时间',
`status` tinyint(1) NOT NULL DEFAULT '1' COMMENT '状态 1正常 0删除',
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=5 DEFAULT CHARSET=utf8;
INSERT INTO `muke`.`app` (`id`, `name`, `is_encryption`, `key`, `image_size`, `create_time`, `update_time`, `status`) VALUES ('1', '安卓pad', '1', 'ss', NULL, '0', '0', '1');
INSERT INTO `muke`.`app` (`id`, `name`, `is_encryption`, `key`, `image_size`, `create_time`, `update_time`, `status`) VALUES ('2', '安卓手机', '1', 'singwa@126.com', NULL, '0', '0', '1');
INSERT INTO `muke`.`app` (`id`, `name`, `is_encryption`, `key`, `image_size`, `create_time`, `update_time`, `status`) VALUES ('3', 'iphone', '1', 'iphone', NULL, '0', '0', '1');
INSERT INTO `muke`.`app` (`id`, `name`, `is_encryption`, `key`, `image_size`, `create_time`, `update_time`, `status`) VALUES ('4', 'ipad', '1', 'ipad&sg2', NULL, '0', '0', '1');
```