126 lines
5.7 KiB
MySQL
126 lines
5.7 KiB
MySQL
|
|
-- 为指定用户添加测试数据
|
|||
|
|
-- 使用方法: 将 @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;
|