create_all_tables.sql 6.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134
  1. -- ============================================
  2. -- 动态功能完整数据库表创建脚本
  3. -- ============================================
  4. -- 1. 用户动态表
  5. CREATE TABLE IF NOT EXISTS `user_dynamics` (
  6. `dynamic_id` INT(11) NOT NULL AUTO_INCREMENT COMMENT '动态ID',
  7. `user_id` INT(11) NOT NULL COMMENT '发布者用户ID',
  8. `content` TEXT NOT NULL COMMENT '动态内容',
  9. `media_urls` TEXT COMMENT '媒体文件URL数组(JSON格式或逗号分隔)',
  10. `media_type` TINYINT(1) DEFAULT 1 COMMENT '媒体类型:1-纯文本,2-图片,3-视频',
  11. `audit_status` TINYINT(1) DEFAULT 0 COMMENT '审核状态:0-待审核,1-审核通过,2-审核拒绝,3-人工审核中',
  12. `audit_remark` VARCHAR(500) COMMENT '审核备注',
  13. `audit_time` DATETIME COMMENT '审核时间',
  14. `audit_admin_id` INT(11) COMMENT '审核管理员ID',
  15. `like_count` INT(11) DEFAULT 0 COMMENT '点赞数',
  16. `comment_count` INT(11) DEFAULT 0 COMMENT '评论数',
  17. `favorite_count` INT(11) DEFAULT 0 COMMENT '收藏数',
  18. `share_count` INT(11) DEFAULT 0 COMMENT '转发数',
  19. `view_count` INT(11) DEFAULT 0 COMMENT '浏览数',
  20. `status` TINYINT(1) DEFAULT 1 COMMENT '状态:0-删除,1-正常,2-隐藏',
  21. `visibility` TINYINT(1) DEFAULT 1 COMMENT '可见性:1-公开,2-仅粉丝,3-私密',
  22. `created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  23. `updated_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  24. PRIMARY KEY (`dynamic_id`),
  25. KEY `idx_user_id` (`user_id`),
  26. KEY `idx_audit_status` (`audit_status`),
  27. KEY `idx_status` (`status`),
  28. KEY `idx_created_at` (`created_at`)
  29. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='用户动态表';
  30. -- 2. 动态点赞表
  31. CREATE TABLE IF NOT EXISTS `dynamic_likes` (
  32. `like_id` BIGINT(20) NOT NULL AUTO_INCREMENT COMMENT '点赞ID',
  33. `dynamic_id` INT(11) NOT NULL COMMENT '动态ID',
  34. `user_id` INT(11) NOT NULL COMMENT '点赞用户ID',
  35. `created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '点赞时间',
  36. PRIMARY KEY (`like_id`),
  37. UNIQUE KEY `uk_dynamic_user` (`dynamic_id`, `user_id`),
  38. KEY `idx_user_id` (`user_id`),
  39. KEY `idx_created_at` (`created_at`)
  40. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='动态点赞表';
  41. -- 3. 动态收藏表
  42. CREATE TABLE IF NOT EXISTS `dynamic_favorites` (
  43. `favorite_id` BIGINT(20) NOT NULL AUTO_INCREMENT COMMENT '收藏ID',
  44. `dynamic_id` INT(11) NOT NULL COMMENT '动态ID',
  45. `user_id` INT(11) NOT NULL COMMENT '收藏用户ID',
  46. `created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '收藏时间',
  47. PRIMARY KEY (`favorite_id`),
  48. UNIQUE KEY `uk_dynamic_user` (`dynamic_id`, `user_id`),
  49. KEY `idx_user_id` (`user_id`),
  50. KEY `idx_created_at` (`created_at`)
  51. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='动态收藏表';
  52. -- 4. 动态评论表
  53. CREATE TABLE IF NOT EXISTS `dynamic_comments` (
  54. `comment_id` BIGINT(20) NOT NULL AUTO_INCREMENT COMMENT '评论ID',
  55. `dynamic_id` INT(11) NOT NULL COMMENT '动态ID',
  56. `user_id` INT(11) NOT NULL COMMENT '评论用户ID',
  57. `parent_comment_id` BIGINT(20) DEFAULT 0 COMMENT '父评论ID(0表示一级评论)',
  58. `content` TEXT NOT NULL COMMENT '评论内容',
  59. `image_urls` TEXT COMMENT '评论图片URL(多张以逗号分隔)',
  60. `like_count` INT(11) DEFAULT 0 COMMENT '点赞数',
  61. `reply_count` INT(11) DEFAULT 0 COMMENT '回复数',
  62. `status` TINYINT(1) DEFAULT 1 COMMENT '状态:0-已删除,1-正常',
  63. `created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '评论时间',
  64. `updated_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  65. PRIMARY KEY (`comment_id`),
  66. KEY `idx_dynamic_id` (`dynamic_id`),
  67. KEY `idx_user_id` (`user_id`),
  68. KEY `idx_parent_comment_id` (`parent_comment_id`),
  69. KEY `idx_created_at` (`created_at`)
  70. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='动态评论表';
  71. -- 5. 评论点赞表
  72. CREATE TABLE IF NOT EXISTS `comment_likes` (
  73. `like_id` BIGINT(20) NOT NULL AUTO_INCREMENT COMMENT '点赞ID',
  74. `comment_id` BIGINT(20) NOT NULL COMMENT '评论ID',
  75. `user_id` INT(11) NOT NULL COMMENT '点赞用户ID',
  76. `created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '点赞时间',
  77. PRIMARY KEY (`like_id`),
  78. UNIQUE KEY `uk_comment_user` (`comment_id`, `user_id`),
  79. KEY `idx_user_id` (`user_id`),
  80. KEY `idx_created_at` (`created_at`)
  81. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='评论点赞表';
  82. -- 6. 动态举报表(已创建)
  83. CREATE TABLE IF NOT EXISTS `dynamic_reports` (
  84. `report_id` BIGINT(20) NOT NULL AUTO_INCREMENT COMMENT '举报ID',
  85. `dynamic_id` BIGINT(20) NOT NULL COMMENT '被举报的动态ID',
  86. `reporter_id` BIGINT(20) NOT NULL COMMENT '举报人用户ID',
  87. `report_type` VARCHAR(50) NOT NULL COMMENT '举报原因类型:spam-垃圾广告,porn-色情低俗,violence-暴力违法,attack-人身攻击,fake-虚假信息,plagiarism-抄袭侵权,other-其他',
  88. `description` TEXT COMMENT '详细描述',
  89. `screenshots` TEXT COMMENT '举报截图URL,多张以逗号分隔',
  90. `contact` VARCHAR(100) COMMENT '联系方式',
  91. `status` TINYINT(1) NOT NULL DEFAULT 0 COMMENT '处理状态:0-待处理,1-处理中,2-已处理,3-已驳回',
  92. `handle_result` TEXT COMMENT '处理结果说明',
  93. `handler_id` BIGINT(20) COMMENT '处理人ID',
  94. `handle_time` DATETIME COMMENT '处理时间',
  95. `created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  96. `updated_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  97. `deleted` TINYINT(1) NOT NULL DEFAULT 0 COMMENT '逻辑删除:0-未删除,1-已删除',
  98. PRIMARY KEY (`report_id`),
  99. KEY `idx_dynamic_id` (`dynamic_id`),
  100. KEY `idx_reporter_id` (`reporter_id`),
  101. KEY `idx_status` (`status`),
  102. KEY `idx_created_at` (`created_at`)
  103. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='动态举报表';
  104. -- ============================================
  105. -- 插入测试数据(可选)
  106. -- ============================================
  107. -- 插入测试动态数据
  108. INSERT INTO `user_dynamics` (`user_id`, `content`, `media_urls`, `media_type`, `audit_status`, `like_count`, `comment_count`, `visibility`) VALUES
  109. (1, '今天天气真好,心情也很好!💕', NULL, 1, 1, 0, 0, 1),
  110. (1, '分享一组美美的照片~', '["http://localhost:9000/marriage/dynamics/test1.jpg","http://localhost:9000/marriage/dynamics/test2.jpg"]', 2, 1, 0, 0, 1),
  111. (2, '参加了一场很棒的活动,遇到了很多有趣的朋友!', NULL, 1, 1, 0, 0, 1);
  112. -- ============================================
  113. -- 表创建完成
  114. -- ============================================
  115. SELECT '✅ 所有动态功能相关表创建成功!' AS status;
  116. SELECT
  117. TABLE_NAME AS '表名',
  118. TABLE_COMMENT AS '说明',
  119. TABLE_ROWS AS '记录数'
  120. FROM information_schema.TABLES
  121. WHERE TABLE_SCHEMA = DATABASE()
  122. AND TABLE_NAME IN ('user_dynamics', 'dynamic_likes', 'dynamic_favorites', 'dynamic_comments', 'comment_likes', 'dynamic_reports')
  123. ORDER BY TABLE_NAME;