zhibo/add_test_data_for_user.sql

126 lines
5.7 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.

-- 为指定用户添加测试数据
-- 使用方法: 将 @USER_ID 替换为实际的用户ID
-- 设置用户ID变量 (修改这里的值为移动端登录的用户ID)
SET @USER_ID = 121;
-- 查看当前用户信息
SELECT uid, nickname, phone FROM eb_user WHERE uid = @USER_ID;
-- ========================================
-- 0. 检查必要的表是否存在
-- ========================================
-- 如果 eb_view_history 表不存在,先创建它
CREATE TABLE IF NOT EXISTS eb_view_history (
id BIGINT AUTO_INCREMENT PRIMARY KEY,
user_id INT 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(200) DEFAULT NULL COMMENT '目标标题',
view_duration INT DEFAULT 0 COMMENT '观看时长(秒)',
create_time DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
update_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
INDEX idx_user_id (user_id),
INDEX idx_target (target_type, target_id),
UNIQUE KEY uk_user_target (user_id, target_type, target_id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='用户观看历史';
-- ========================================
-- 1. 添加观看历史
-- ========================================
-- 先检查是否有直播间数据
SELECT COUNT(*) as room_count FROM eb_live_room;
-- 添加直播间观看历史
INSERT IGNORE INTO eb_view_history (user_id, target_type, target_id, target_title, view_duration, create_time, update_time)
SELECT @USER_ID, 'room', id, title, FLOOR(RAND() * 3600), NOW() - INTERVAL FLOOR(RAND() * 7) DAY, NOW()
FROM eb_live_room LIMIT 5;
-- 检查是否有作品数据
SELECT COUNT(*) as works_count FROM eb_works;
-- 添加作品观看历史
INSERT IGNORE INTO eb_view_history (user_id, target_type, target_id, target_title, view_duration, create_time, update_time)
SELECT @USER_ID, 'work', id, title, FLOOR(RAND() * 600), NOW() - INTERVAL FLOOR(RAND() * 7) DAY, NOW()
FROM eb_works LIMIT 5;
-- ========================================
-- 2. 添加直播间点赞
-- ========================================
-- 检查 eb_live_room_like 表是否存在
CREATE TABLE IF NOT EXISTS eb_live_room_like (
id BIGINT AUTO_INCREMENT PRIMARY KEY,
user_id INT NOT NULL COMMENT '用户ID',
room_id INT NOT NULL COMMENT '直播间ID',
like_count INT DEFAULT 1 COMMENT '点赞次数',
create_time DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
INDEX idx_user_id (user_id),
INDEX idx_room_id (room_id),
UNIQUE KEY uk_user_room (user_id, room_id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='直播间点赞记录';
INSERT IGNORE INTO eb_live_room_like (user_id, room_id, like_count, create_time)
SELECT @USER_ID, id, FLOOR(RAND() * 10) + 1, NOW() - INTERVAL FLOOR(RAND() * 7) DAY
FROM eb_live_room LIMIT 5;
-- ========================================
-- 3. 添加作品点赞 (type=1)
-- ========================================
INSERT IGNORE INTO eb_works_relation (uid, works_id, type, create_time)
SELECT @USER_ID, id, 1, NOW() - INTERVAL FLOOR(RAND() * 7) DAY
FROM eb_works LIMIT 5;
-- ========================================
-- 4. 添加作品收藏 (type=2)
-- ========================================
INSERT IGNORE INTO eb_works_relation (uid, works_id, type, create_time)
SELECT @USER_ID, id, 2, NOW() - INTERVAL FLOOR(RAND() * 7) DAY
FROM eb_works WHERE id NOT IN (SELECT works_id FROM eb_works_relation WHERE uid = @USER_ID AND type = 2) LIMIT 4;
-- ========================================
-- 5. 添加关注记录
-- ========================================
-- 检查 eb_follow_record 表是否存在
CREATE TABLE IF NOT EXISTS eb_follow_record (
id BIGINT AUTO_INCREMENT PRIMARY KEY,
follower_id INT NOT NULL COMMENT '关注者ID',
follower_nickname VARCHAR(100) DEFAULT NULL COMMENT '关注者昵称',
followed_id INT NOT NULL COMMENT '被关注者ID',
followed_nickname VARCHAR(100) DEFAULT NULL COMMENT '被关注者昵称',
follow_status VARCHAR(20) DEFAULT '1' COMMENT '关注状态: 1或关注=已关注',
create_time DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
INDEX idx_follower (follower_id),
INDEX idx_followed (followed_id),
UNIQUE KEY uk_follow (follower_id, followed_id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='关注记录';
INSERT IGNORE INTO eb_follow_record (follower_id, follower_nickname, followed_id, followed_nickname, follow_status, create_time)
SELECT @USER_ID,
(SELECT nickname FROM eb_user WHERE uid = @USER_ID),
uid,
nickname,
1,
NOW() - INTERVAL FLOOR(RAND() * 30) DAY
FROM eb_user
WHERE uid != @USER_ID
AND uid NOT IN (SELECT followed_id FROM eb_follow_record WHERE follower_id = @USER_ID)
LIMIT 6;
-- ========================================
-- 验证数据
-- ========================================
SELECT '观看历史' as type, COUNT(*) as count FROM eb_view_history WHERE user_id = @USER_ID
UNION ALL
SELECT '直播间点赞', COUNT(*) FROM eb_live_room_like WHERE user_id = @USER_ID
UNION ALL
SELECT '作品点赞', COUNT(*) FROM eb_works_relation WHERE uid = @USER_ID AND type = 1
UNION ALL
SELECT '作品收藏', COUNT(*) FROM eb_works_relation WHERE uid = @USER_ID AND type = 2
UNION ALL
SELECT '关注记录', COUNT(*) FROM eb_follow_record WHERE follower_id = @USER_ID AND (follow_status = 1 OR follow_status = '关注');
-- ========================================
-- 查看所有用户列表用于确定移动端登录的用户ID
-- ========================================
SELECT uid, nickname, phone, create_time FROM eb_user ORDER BY uid DESC LIMIT 20;