create_crawler_account_info_table.sql 2.4 KB

1234567891011121314151617181920212223242526272829303132
  1. -- 账户活跃度表
  2. CREATE TABLE external_user_activity (
  3. -- 基础信息
  4. id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '主键ID,自增长',
  5. out_user_id VARCHAR(100) NOT NULL COMMENT '外部用户ID,唯一标识外部平台用户',
  6. platform VARCHAR(50) NOT NULL COMMENT '平台名称,如:youtube、wechat、xiaoniangao等',
  7. strategy VARCHAR(100) DEFAULT '' COMMENT '爬虫策略,如:author、recommend等',
  8. -- 爬取统计信息(核心指标)
  9. total_videos INT UNSIGNED DEFAULT 0 COMMENT '历史总爬取视频数,该用户在平台上所有视频总数',
  10. recent_30d_videos INT UNSIGNED DEFAULT 0 COMMENT '近30天爬取视频数,反映中期活跃度',
  11. recent_7d_videos INT UNSIGNED DEFAULT 0 COMMENT '近7天爬取视频数,反映短期活跃度',
  12. -- 活跃度信息
  13. activity_level VARCHAR(20) DEFAULT '未知' COMMENT '活跃度级别:新用户、极高活跃、高活跃、中活跃、低活跃、休眠、僵尸',
  14. priority_level TINYINT DEFAULT 5 COMMENT '爬虫优先级:0-新用户(最高),1-极高活跃,2-高活跃,3-中活跃,4-低活跃,5-休眠,6-僵尸(最低)',
  15. is_active TINYINT(1) DEFAULT 1 COMMENT '是否活跃:0-不活跃,1-活跃',
  16. is_new_user TINYINT(1) DEFAULT 0 COMMENT '是否新用户:0-非新用户,1-新用户',
  17. -- 时间信息
  18. create_time DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '记录创建时间,首次插入时自动设置',
  19. update_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '记录更新时间,每次更新时自动更新',
  20. -- 主键和索引
  21. PRIMARY KEY (id) COMMENT '主键索引',
  22. UNIQUE KEY uk_out_user_platform (out_user_id, platform, strategy) COMMENT '唯一索引,确保同一平台、策略下的用户唯一',
  23. KEY idx_priority_level (priority_level) COMMENT '优先级索引,用于按优先级排序查询',
  24. KEY idx_activity_level (activity_level) COMMENT '活跃度级别索引,用于按级别分组统计',
  25. KEY idx_is_new_user (is_new_user) COMMENT '新用户标识索引,快速筛选新用户',
  26. KEY idx_recent_7d_videos (recent_7d_videos DESC) COMMENT '核心指标索引,降序排列',
  27. KEY idx_activity_composite (priority_level, recent_7d_videos DESC) COMMENT '复合索引,优化调度查询'
  28. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='账户活跃度管理表,存储外部账户的活跃度信息和爬虫调度优先级';