zhibo/complete_user_activity_data.sql

120 lines
5.4 KiB
MySQL
Raw Normal View History

-- =====================================================
-- 完整的用户活动数据初始化脚本
-- 确保移动端"我的记录"功能正常显示
-- =====================================================
-- 1. 确保所有必要的表存在
-- =====================================================
-- 观看历史表
CREATE TABLE IF NOT EXISTS `eb_view_history` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`user_id` int(11) NOT NULL COMMENT '用户ID',
`target_type` varchar(20) NOT NULL COMMENT '目标类型room-直播间, work-作品, profile-用户主页',
`target_id` varchar(50) NOT NULL COMMENT '目标ID',
`target_title` varchar(255) DEFAULT NULL COMMENT '目标标题',
`view_duration` int(11) DEFAULT 0 COMMENT '观看时长(秒)',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`id`),
KEY `idx_user_id` (`user_id`),
KEY `idx_target` (`target_type`, `target_id`),
KEY `idx_update_time` (`update_time`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='观看历史记录表';
-- 直播间点赞表
CREATE TABLE IF NOT EXISTS `eb_live_room_like` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`user_id` int(11) NOT NULL COMMENT '用户ID',
`room_id` varchar(50) NOT NULL COMMENT '直播间ID',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`id`),
UNIQUE KEY `uk_user_room` (`user_id`, `room_id`),
KEY `idx_user_id` (`user_id`),
KEY `idx_room_id` (`room_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='直播间点赞记录表';
-- 心愿点赞表
CREATE TABLE IF NOT EXISTS `eb_wish_like` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`user_id` int(11) NOT NULL COMMENT '用户ID',
`wish_id` bigint(20) NOT NULL COMMENT '心愿ID',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`id`),
UNIQUE KEY `uk_user_wish` (`user_id`, `wish_id`),
KEY `idx_user_id` (`user_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='心愿点赞记录表';
-- 搜索历史表
CREATE TABLE IF NOT EXISTS `eb_search_history` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`user_id` int(11) NOT NULL COMMENT '用户ID',
`keyword` varchar(100) NOT NULL COMMENT '搜索关键词',
`search_type` varchar(20) DEFAULT 'all' COMMENT '搜索类型',
`is_deleted` tinyint(1) DEFAULT 0 COMMENT '是否删除',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`id`),
KEY `idx_user_id` (`user_id`),
KEY `idx_keyword` (`keyword`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='搜索历史记录表';
-- 2. 为用户121道玄添加完整测试数据
-- =====================================================
SET @USER_ID = 121;
-- 清除旧数据(可选)
-- DELETE FROM eb_view_history WHERE user_id = @USER_ID;
-- DELETE FROM eb_live_room_like WHERE user_id = @USER_ID;
-- 添加观看历史
INSERT IGNORE INTO eb_view_history (user_id, target_type, target_id, target_title, view_duration, create_time, update_time) VALUES
(@USER_ID, 'room', '1', '欢乐游戏直播', 1800, NOW() - INTERVAL 1 HOUR, NOW() - INTERVAL 1 HOUR),
(@USER_ID, 'room', '2', '音乐分享会', 2400, NOW() - INTERVAL 2 HOUR, NOW() - INTERVAL 2 HOUR),
(@USER_ID, 'room', '3', '户外探险', 1200, NOW() - INTERVAL 3 HOUR, NOW() - INTERVAL 3 HOUR),
(@USER_ID, 'room', '4', '美食制作教程', 3600, NOW() - INTERVAL 4 HOUR, NOW() - INTERVAL 4 HOUR),
(@USER_ID, 'room', '5', '编程技术分享', 5400, NOW() - INTERVAL 5 HOUR, NOW() - INTERVAL 5 HOUR);
-- 添加直播间点赞
INSERT IGNORE INTO eb_live_room_like (user_id, room_id, create_time) VALUES
(@USER_ID, '1', NOW() - INTERVAL 1 HOUR),
(@USER_ID, '2', NOW() - INTERVAL 2 HOUR),
(@USER_ID, '3', NOW() - INTERVAL 3 HOUR);
-- 3. 验证数据
-- =====================================================
SELECT '=== 用户121的观看历史 ===' as info;
SELECT id, user_id, target_type, target_id, target_title, view_duration,
DATE_FORMAT(update_time, '%Y-%m-%d %H:%i:%s') as update_time
FROM eb_view_history
WHERE user_id = @USER_ID
ORDER BY update_time DESC;
SELECT '=== 用户121的直播间点赞 ===' as info;
SELECT rl.id, rl.user_id, rl.room_id, lr.title as room_title,
DATE_FORMAT(rl.create_time, '%Y-%m-%d %H:%i:%s') as create_time
FROM eb_live_room_like rl
LEFT JOIN eb_live_room lr ON rl.room_id = lr.id
WHERE rl.user_id = @USER_ID;
SELECT '=== 用户121的关注记录 ===' as info;
SELECT fr.id, fr.follower_id, fr.followed_id, fr.followed_nickname, fr.follow_status,
DATE_FORMAT(fr.create_time, '%Y-%m-%d %H:%i:%s') as create_time
FROM eb_follow_record fr
WHERE fr.follower_id = @USER_ID AND (fr.follow_status = 1 OR fr.follow_status = '关注');
SELECT '=== 用户121的收藏作品 ===' as info;
SELECT wr.id, wr.uid, wr.works_id, w.title,
DATE_FORMAT(wr.create_time, '%Y-%m-%d %H:%i:%s') as create_time
FROM eb_works_relation wr
LEFT JOIN eb_works w ON wr.works_id = w.id
WHERE wr.uid = @USER_ID AND wr.type = 2;
SELECT '=== 数据汇总 ===' as info;
SELECT
(SELECT COUNT(*) FROM eb_view_history WHERE user_id = @USER_ID) as ,
(SELECT COUNT(*) FROM eb_live_room_like WHERE user_id = @USER_ID) as ,
(SELECT COUNT(*) FROM eb_follow_record WHERE follower_id = @USER_ID AND (follow_status = 1 OR follow_status = '关注')) as ,
(SELECT COUNT(*) FROM eb_works_relation WHERE uid = @USER_ID AND type = 2) as ;