zhibo/complete_user_activity_data.sql

120 lines
5.4 KiB
SQL
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

-- =====================================================
-- 完整的用户活动数据初始化脚本
-- 确保移动端"我的记录"功能正常显示
-- =====================================================
-- 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 ;