海量数据处理项目-账号微服务和流量包数据库表+索引规范(下)
第2集 账号微服务和流量包数据库表+索引规范讲解《下》
简介:账号微服务和流量包数据库表+索引规范讲解
- 账号和流量包的关系:一对多
- traffic流量包表
- 思考点
- 海量数据下每天免费次数怎么更新?
- 海量数据付费流量套餐包每天次数限制怎么更新?
- 高性能扣减流量包设计怎么做?
- 流量包数据更新处理-高并发下分布式事务怎么解决
CREATE TABLE `traffic` (`id` bigint unsigned NOT NULL AUTO_INCREMENT,`day_limit` int DEFAULT NULL COMMENT '每天限制多少条,短链',`day_used` int DEFAULT NULL COMMENT '当天用了多少条,短链',`total_limit` int DEFAULT NULL COMMENT '总次数,活码才用',`account_no` bigint DEFAULT NULL COMMENT '账号',`out_trade_no` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT '订单号',`level` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT '产品层级:FIRST青铜、SECOND黄金、THIRD钻石',`expired_date` date DEFAULT NULL COMMENT '过期日期',`plugin_type` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT '插件类型',`product_id` bigint DEFAULT NULL COMMENT '商品主键',`gmt_create` datetime DEFAULT CURRENT_TIMESTAMP,`gmt_modified` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,PRIMARY KEY (`id`),UNIQUE KEY `uk_trade_no` (`out_trade_no`,`account_no`) USING BTREE,KEY `idx_account_no` (`account_no`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin;
traffic_task 流量包任务表(先建-后续会讲用途)
CREATE TABLE `traffic_task` (`id` bigint unsigned NOT NULL AUTO_INCREMENT,`account_no` bigint DEFAULT NULL,`traffic_id` bigint DEFAULT NULL,`use_times` int DEFAULT NULL,`lock_state` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT '锁定状态锁定LOCK 完成FINISH-取消CANCEL',`message_id` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT '唯一标识',`gmt_create` datetime DEFAULT CURRENT_TIMESTAMP,`gmt_modified` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,PRIMARY KEY (`id`),UNIQUE KEY `uk_msg_id` (`message_id`) USING BTREE,KEY `idx_release` (`account_no`,`id`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin;