fix(tongji): 修复小游戏平台同步与并发问题
This commit is contained in:
@@ -1,5 +1,13 @@
|
||||
-- 控糖消消乐:真实用户周榜、幂等局记录与轻量分享访问关系
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `zyt_tcm_game_weekly_allocator` (
|
||||
`week_start` date NOT NULL COMMENT '周一日期',
|
||||
`sex` tinyint unsigned NOT NULL DEFAULT 0 COMMENT '同行组性别:0未知 1男 2女',
|
||||
`create_time` int unsigned NOT NULL DEFAULT 0,
|
||||
`update_time` int unsigned NOT NULL DEFAULT 0,
|
||||
PRIMARY KEY (`week_start`, `sex`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='控糖消消乐每周同行分组并发锁';
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `zyt_tcm_game_weekly_group` (
|
||||
`id` int unsigned NOT NULL AUTO_INCREMENT,
|
||||
`week_start` date NOT NULL COMMENT '周一日期',
|
||||
@@ -68,6 +76,7 @@ CREATE TABLE IF NOT EXISTS `zyt_tcm_game_share_visit` (
|
||||
`visitor_user_id` int unsigned NOT NULL COMMENT '受邀打开用户ID',
|
||||
`create_time` int unsigned NOT NULL DEFAULT 0,
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `uk_inviter_visitor` (`inviter_user_id`, `visitor_user_id`),
|
||||
UNIQUE KEY `uk_invite_visitor` (`invite_code`, `visitor_user_id`),
|
||||
KEY `idx_inviter` (`inviter_user_id`),
|
||||
KEY `idx_visitor` (`visitor_user_id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='控糖消消乐分享打开记录(不做强绑定)';
|
||||
|
||||
@@ -0,0 +1,55 @@
|
||||
-- 仅用于已经执行过旧版小游戏建表脚本的数据库。
|
||||
-- 新安装直接执行 add_tcm_endless_game_platform.sql 即可。
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `zyt_tcm_game_weekly_allocator` (
|
||||
`week_start` date NOT NULL COMMENT '周一日期',
|
||||
`sex` tinyint unsigned NOT NULL DEFAULT 0 COMMENT '同行组性别:0未知 1男 2女',
|
||||
`create_time` int unsigned NOT NULL DEFAULT 0,
|
||||
`update_time` int unsigned NOT NULL DEFAULT 0,
|
||||
PRIMARY KEY (`week_start`, `sex`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='控糖消消乐每周同行分组并发锁';
|
||||
|
||||
SET @has_old_visit_index = (
|
||||
SELECT COUNT(*) FROM information_schema.statistics
|
||||
WHERE table_schema = DATABASE()
|
||||
AND table_name = 'zyt_tcm_game_share_visit'
|
||||
AND index_name = 'uk_inviter_visitor'
|
||||
);
|
||||
SET @drop_old_visit_index_sql = IF(
|
||||
@has_old_visit_index > 0,
|
||||
'ALTER TABLE `zyt_tcm_game_share_visit` DROP INDEX `uk_inviter_visitor`',
|
||||
'SELECT 1'
|
||||
);
|
||||
PREPARE drop_old_visit_index_stmt FROM @drop_old_visit_index_sql;
|
||||
EXECUTE drop_old_visit_index_stmt;
|
||||
DEALLOCATE PREPARE drop_old_visit_index_stmt;
|
||||
|
||||
SET @has_invite_visit_index = (
|
||||
SELECT COUNT(*) FROM information_schema.statistics
|
||||
WHERE table_schema = DATABASE()
|
||||
AND table_name = 'zyt_tcm_game_share_visit'
|
||||
AND index_name = 'uk_invite_visitor'
|
||||
);
|
||||
SET @add_invite_visit_index_sql = IF(
|
||||
@has_invite_visit_index = 0,
|
||||
'ALTER TABLE `zyt_tcm_game_share_visit` ADD UNIQUE INDEX `uk_invite_visitor` (`invite_code`, `visitor_user_id`)',
|
||||
'SELECT 1'
|
||||
);
|
||||
PREPARE add_invite_visit_index_stmt FROM @add_invite_visit_index_sql;
|
||||
EXECUTE add_invite_visit_index_stmt;
|
||||
DEALLOCATE PREPARE add_invite_visit_index_stmt;
|
||||
|
||||
SET @has_inviter_index = (
|
||||
SELECT COUNT(*) FROM information_schema.statistics
|
||||
WHERE table_schema = DATABASE()
|
||||
AND table_name = 'zyt_tcm_game_share_visit'
|
||||
AND index_name = 'idx_inviter'
|
||||
);
|
||||
SET @add_inviter_index_sql = IF(
|
||||
@has_inviter_index = 0,
|
||||
'ALTER TABLE `zyt_tcm_game_share_visit` ADD INDEX `idx_inviter` (`inviter_user_id`)',
|
||||
'SELECT 1'
|
||||
);
|
||||
PREPARE add_inviter_index_stmt FROM @add_inviter_index_sql;
|
||||
EXECUTE add_inviter_index_stmt;
|
||||
DEALLOCATE PREPARE add_inviter_index_stmt;
|
||||
Reference in New Issue
Block a user