Commit 887a1a32 by jscat

nyx-master

1. 为积分添加数据文件
parent 60e1c33c
USE rockwell_key; USE rockwell_key;
USE rockwell_key; USE rockwell_key;
/* /*
用于记录竞答结果: daily | 1v1 的比赛结果 用于记录竞答结果:
针对不同类型的数据解释
daily: 每日测验: 1) user答完一个quiz,会生成一条记录tbl_match,
- match_score: 10中答对的个数 记录了如下参数:
- team_type: blue - match_id: mid_123
- match_result: 完成为1, 未完成为0 - member_id: memid_001
- quiz_index: 如果match_result为0, 则为已完成的题目个数(<10); 如果match_result为1, 则为10 - user_id: uid_456
- rank_score: 同match_score - 积分使用状态match_status(可用|不可用): 1|0
pk: 竞答: - 积分值match_point: 4.5
- match_score: 10中答对的个数 - 答题结果match_result: 9/10
- team_type: blue|read - 二维码url qrcode_url: https://930-test-sh.oss-cn-shanghai.aliyuncs.com/user-dir/qrcode_mid_001.png
- match_result: 胜利为1, 失败为0 - 答题时间create_datetime: 2020/07/30 12:00:00
- quiz_index: 为已完成的题目个数, 如果match_result为0, 则个数<10; 如果match_result为1, 则为10 - 更新时间update_datetime: 2020/07/30 12:00:00
- rank_score: 段位分数, 胜利+2,失败-1
study: 知识学习:
- match_score: 本次完成的题目个数
- team_type: 默认为blue
- match_result: 默认为1
- quiz_index: 已经学习到的题目id, 便于继续学习
- rank_score: 同match_score,便于统计排名
ps: 更新了tbl_match之后,需要同步运行create_sql_match_rank.sql
以同步更新tbl_match_rank
*/ */
DROP TABLE IF EXISTS tbl_match; DROP TABLE IF EXISTS tbl_match;
CREATE TABLE tbl_match ( CREATE TABLE tbl_match (
`match_id` VARCHAR(100) COMMENT '竞答的id, uuid format, mid_001', `match_id` VARCHAR(100) COMMENT '竞答的id, uuid format, mid_001',
`match_season` VARCHAR(10) COMMENT '竞答赛季: s01', `member_id` VARCHAR(100) COMMENT '商家的id, uuid format, memid_001',
`match_type` VARCHAR(10) COMMENT '竞答类别: 1:daily 2:pk', `user_id` VARCHAR(100) COMMENT '用户的id, uuid format, uid_001',
`match_team` VARCHAR(200) COMMENT '竞答队伍 uid_001', `match_status` VARCHAR(2) COMMENT '(可用|不可用): 1|0',
`match_score` VARCHAR(10) COMMENT '竞答分数, 比如:10', `match_point` double(10,2) COMMENT '得分: 4.5 or 5.0',
`team_type` VARCHAR(200) COMMENT '主队还是客队 blue|red', `match_result` VARCHAR(20) COMMENT '结果: 9/10',
`match_result` VARCHAR(200) COMMENT '对于pk来说: win|lose; 对于study来说: 当次答题是否完成', `qrcode_url` VARCHAR(100) COMMENT 'qrcode的二维码url',
`quiz_index` VARCHAR(20) COMMENT '竞答|学习进行到第几题',
`rank_score` VARCHAR(10) COMMENT '段位分数, 胜利+2,失败-1',
`create_datetime` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00', `create_datetime` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00',
`update_datetime` DATETIME DEFAULT NULL, `update_datetime` DATETIME DEFAULT NULL,
PRIMARY KEY(`match_id`, `match_team`), PRIMARY KEY(`match_id`),
KEY `query_key` (`match_season`, `match_type`, `match_team`, `match_result`, `match_score`, `rank_score`)) KEY `query_key` (`member_id`, `user_id`, `match_status`))
ENGINE=INNODB DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci COMMENT='rockwell 竞答结果'; ENGINE=INNODB DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci COMMENT='竞答结果';
INSERT INTO `tbl_match`(`match_id`, `match_season`, `match_type`,`match_team`,`match_score`, `team_type`, `match_result`, `quiz_index`, `rank_score`, `create_datetime`,`update_datetime`) INSERT INTO `tbl_match`(`match_id`, `member_id`, `user_id`, `match_status`, `match_point`,`match_result`, `create_datetime`,`update_datetime`, `qrcode_url`)
VALUES VALUES
('mid_001', 's01', 'daily', 'uid_001', '10', 'blue','1', '10', '10', '2019-11-20 11:24:45', '2019-11-20 11:24:45'), ('mid_001', 'mid_123', 'uid_030e7057-e6b5-4fb0-bcbf-d8bf055e38d9', '0', 4.5, '9/10', '2019-11-20 11:24:45', '2019-11-20 11:24:45', 'https://930-test-sh.oss-cn-shanghai.aliyuncs.com/user-dir/qrcode_mid_001.png'),
('mid_002', 's01', 'pk', 'uid_001', '10', 'blue','1', '10', '2','2019-11-20 11:24:45', '2019-11-20 11:24:45'), ('mid_002', 'mid_123', 'uid_030e7057-e6b5-4fb0-bcbf-d8bf055e38d9', '1', 4.5, '9/10', '2019-11-20 11:24:45', '2019-11-20 11:24:45', 'https://930-test-sh.oss-cn-shanghai.aliyuncs.com/user-dir/qrcode_mid_002.png'),
('mid_002', 's01', 'pk', 'uid_002', '9', 'red','0', '10', '-1', '2019-11-20 11:24:45', '2019-11-20 11:24:45'), ('mid_003', 'mid_123', 'uid_088a957b-78e9-49cd-980b-ce8bc47b4e11', '1', 4.0, '8/10', '2019-11-20 11:24:45', '2019-11-20 11:24:45', 'https://930-test-sh.oss-cn-shanghai.aliyuncs.com/user-dir/qrcode_mid_003.png');
('mid_003', 's01', 'pk', 'uid_003', '10', 'blue','0', '10', '-1', '2019-11-20 11:24:45', '2019-11-20 11:24:45'), \ No newline at end of file
('mid_003', 's01', 'pk', 'uid_004', '14', 'red', '1', '10', '2', '2019-11-20 11:24:45', '2019-11-20 11:24:45'),
('mid_004', 's01', 'daily', 'uid_005', '10', 'blue','1', '10', '10', '2019-11-20 11:24:45', '2019-11-20 11:24:45'),
('mid_005', 's01', 'pk', 'uid_001', '5', 'blue','0', '10', '-1','2019-11-20 11:24:45', '2019-11-20 11:24:45'),
('mid_005', 's01', 'pk', 'uid_002', '9', 'red','1', '10', '2', '2019-11-20 11:24:45', '2019-11-20 11:24:45'),
('mid_006', 's01', 'pk', 'uid_003', '7', 'blue','0', '10', '-1', '2019-11-20 11:24:45', '2019-11-20 11:24:45'),
('mid_006', 's01', 'pk', 'uid_004', '14', 'red', '1', '10', '2', '2019-11-20 11:24:45', '2019-11-20 11:24:45'),
('mid_007', 's01', 'pk', 'uid_001', '1', 'blue','1', '10', '2','2019-11-20 11:24:45', '2019-11-20 11:24:45'),
('mid_007', 's01', 'pk', 'uid_002', '9', 'red','0', '10', '-1', '2019-11-20 11:24:45', '2019-11-20 11:24:45'),
('mid_008', 's01', 'pk', 'uid_003', '18', 'blue','1', '10', '2', '2019-11-20 11:24:45', '2019-11-20 11:24:45'),
('mid_008', 's01', 'pk', 'uid_004', '14', 'red', '0', '10', '-1', '2019-11-20 11:24:45', '2019-11-20 11:24:45'),
('mid_009', 's01', 'daily', 'uid_001', '10', 'blue','1', '10', '10', '2019-11-20 11:24:45', '2019-11-20 11:24:45'),
('mid_010', 's01', 'daily', 'uid_001', '10', 'blue','1', '10', '10', '2019-11-20 11:24:45', '2019-11-20 11:24:45'),
('mid_011', 's01', 'pk', 'uid_004', '18', 'blue','1', '10', '2', '2019-11-20 11:24:45', '2019-11-20 11:24:45'),
('mid_012', 's01', 'pk', 'uid_002', '16', 'red','0', '10', '-1', '2019-11-20 11:24:45', '2019-11-20 11:24:45'),
('mid_013', 's01', 'pk', 'uid_001', '18', 'blue','1', '10', '2', '2019-11-20 11:24:45', '2019-11-20 11:24:45'),
('mid_014', 's01', 'pk', 'uid_002', '16', 'red','0', '10', '-1', '2019-11-20 11:24:45', '2019-11-20 11:24:45'),
('mid_015', 's02', 'pk', 'uid_001', '16', 'blue','1', '10', '2', '2019-11-20 11:24:45', '2019-11-20 11:24:45'),
('mid_016', 's02', 'pk', 'uid_003', '13', 'red','0', '10', '-1', '2019-11-20 11:24:45', '2019-11-20 11:24:45'),
('mid_017', 's03', 'daily', 'uid_001', '6', 'blue','0', '8', '6', '2020-2-20 11:24:45', '2019-11-20 11:24:45'),
('mid_018', 's03', 'wset2', 'uid_002', '20', 'blue','1', '8', '20', '2020-2-20 11:24:45', '2019-11-20 11:24:45'),
('mid_019', 's03', 'whisky', 'uid_002', '3', 'blue','1', '368', '3', '2020-2-20 11:24:45', '2019-11-20 11:24:45'),
('mid_020', 's03', 'whisky', 'uid_001', '1', 'blue','1', '367', '1', '2020-2-20 11:24:45', '2019-11-20 11:24:45'),
('mid_021', 's03', 'whisky', 'uid_001', '1', 'blue','1', '366', '1', '2020-2-23 11:24:45', '2019-11-20 11:24:45'),
('mid_022', 's03', 'wset2', 'uid_001', '11', 'blue','1', '18', '11', '2020-2-20 11:24:45', '2019-11-20 11:24:45'),
('mid_023', 's03', 'wset2', 'uid_001', '6', 'blue','1', '42', '6', '2020-2-21 11:24:45', '2019-11-20 11:24:45')
;
\ No newline at end of file
USE rockwell_key;
USE rockwell_key;
/*
用于竞答结果的加分(bonus):
1) user答完一个quiz,会生成一条记录tbl_match
用户针对这个match_id进行加分,默认每次0.5元,最大不超过5元
记录了如下参数:
- match_id: mid_123
- user_id: uid_456
- user_name: 张三
- 积分值bonus_point: 0.5
- 答题时间create_datetime: 2020/07/30 12:00:00
- 更新时间update_datetime: 2020/07/30 12:00:00
*/
DROP TABLE IF EXISTS tbl_match_bonus;
CREATE TABLE tbl_match_bonus (
`match_id` VARCHAR(100) COMMENT '竞答的id, uuid format, mid_001',
`user_id` VARCHAR(100) COMMENT '用户的id, uuid format, uid_001',
`user_name` VARCHAR(100) COMMENT '用户名',
`bonus_point` DOUBLE(10,2) COMMENT '得分: 0.5',
`create_datetime` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00',
`update_datetime` DATETIME DEFAULT NULL,
PRIMARY KEY(`match_id`, `user_id`),
KEY `query_key` (`user_id`))
ENGINE=INNODB DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci COMMENT='竞答结果的加分';
INSERT INTO `tbl_match_bonus`(`match_id`, `user_id`, `user_name`, `bonus_point`, `create_datetime`,`update_datetime`)
VALUES
('mid_001', 'uid_030e7057-e6b5-4fb0-bcbf-d8bf055e38d9', '小屋', 0.5, '2019-11-20 11:24:45', '2019-11-20 11:24:45'),
('mid_001', 'uid_0fa77b58-4273-41c0-890f-f0b10cca0370', 'zsy', 0.5, '2019-11-20 11:24:45', '2019-11-20 11:24:45'),
('mid_002', 'uid_0fa77b58-4273-41c0-890f-f0b10cca0370', 'zsy', 0.5, '2019-11-20 11:24:45', '2019-11-20 11:24:45');
\ No newline at end of file
USE rockwell_key;
USE rockwell_key;
/*
match+bonus 视图
target: 将每一个match_id的bonus聚合
tbl_match 提供比赛数据
tbl_match_bonus 提供比赛加分数据
*/
DROP VIEW IF EXISTS view_match_bonus;
CREATE VIEW view_match_bonus
AS
SELECT aa.match_id, IFNULL(COUNT(bb.bonus_point), 0) AS bonus_count, IFNULL(SUM(bb.bonus_point), 0) AS bonus_point
FROM tbl_match aa
LEFT JOIN tbl_match_bonus bb ON aa.match_id=bb.match_id
GROUP BY aa.match_id
USE rockwell_key;
USE rockwell_key;
/*
match所对应的point视图, 包括答题积分 + bonus
target: 将答题的积分同bonus积分累加
计算排名
tbl_match 提供比赛数据
tbl_match_bonus 提供比赛加分数据
*/
DROP VIEW IF EXISTS view_match_point;
CREATE VIEW view_match_point
AS
SELECT aa.match_id, aa.match_status, aa.member_id, aa.member_name, aa.match_point, cc.bonus_point, aa.match_point+cc.bonus_point as total_point
FROM tbl_match aa
LEFT JOIN tbl_member bb ON aa.member_id=bb.id
LEFT JOIN view_match_bonus cc ON aa.match_id=cc.match_id
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论