use school_news; -- 资源/新闻表 DROP TABLE IF EXISTS `tb_resource`; CREATE TABLE `tb_resource` ( `id` VARCHAR(50) NOT NULL COMMENT 'ID', `resource_id` VARCHAR(50) NOT NULL COMMENT '资源ID', `title` VARCHAR(255) NOT NULL COMMENT '资源标题', `content` LONGTEXT COMMENT '资源内容', `summary` VARCHAR(500) DEFAULT NULL COMMENT '资源简介', `cover_image` VARCHAR(255) DEFAULT NULL COMMENT '封面图片', `tag_id` VARCHAR(50) DEFAULT NULL COMMENT '标签ID(文章分类标签,tagType=1)', `author` VARCHAR(100) DEFAULT NULL COMMENT '作者', `source` VARCHAR(255) DEFAULT NULL COMMENT '来源', `source_url` VARCHAR(500) DEFAULT NULL COMMENT '来源URL', `view_count` INT(11) DEFAULT 0 COMMENT '浏览次数', `like_count` INT(11) DEFAULT 0 COMMENT '点赞次数', `collect_count` INT(11) DEFAULT 0 COMMENT '收藏次数', `status` INT(4) DEFAULT 0 COMMENT '状态(0草稿 1已发布 2下架)', `is_recommend` TINYINT(1) DEFAULT 0 COMMENT '是否推荐', `is_banner` TINYINT(1) DEFAULT 0 COMMENT '是否轮播', `publish_time` TIMESTAMP NULL DEFAULT NULL COMMENT '发布时间', `creator` VARCHAR(50) DEFAULT NULL COMMENT '创建者', `updater` VARCHAR(50) DEFAULT NULL COMMENT '更新者', `create_time` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `update_time` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', `delete_time` TIMESTAMP NULL DEFAULT NULL COMMENT '删除时间', `deleted` TINYINT(1) NOT NULL DEFAULT 0 COMMENT '是否删除', PRIMARY KEY (`id`), KEY `idx_resource_id` (`resource_id`), KEY `idx_tag` (`tag_id`), KEY `idx_status` (`status`), KEY `idx_publish_time` (`publish_time`), KEY `idx_view_count` (`view_count`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='资源表'; -- Banner管理表 DROP TABLE IF EXISTS `tb_banner`; CREATE TABLE `tb_banner` ( `id` VARCHAR(50) NOT NULL COMMENT 'ID', `banner_id` VARCHAR(50) NOT NULL COMMENT 'Banner ID', `title` VARCHAR(255) NOT NULL COMMENT 'Banner标题', `image_url` VARCHAR(500) NOT NULL COMMENT 'Banner图片URL', `link_type` INT(4) DEFAULT 1 COMMENT '链接类型(1资源 2课程 3外部链接)', `link_id` VARCHAR(50) DEFAULT NULL COMMENT '关联ID(资源ID或课程ID)', `link_url` VARCHAR(500) DEFAULT NULL COMMENT '外部链接URL', `order_num` INT(4) DEFAULT 0 COMMENT '排序号', `status` INT(4) DEFAULT 1 COMMENT '状态(0禁用 1启用)', `creator` VARCHAR(50) DEFAULT NULL COMMENT '创建者', `updater` VARCHAR(50) DEFAULT NULL COMMENT '更新者', `create_time` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `update_time` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', `delete_time` TIMESTAMP NULL DEFAULT NULL COMMENT '删除时间', `deleted` TINYINT(1) NOT NULL DEFAULT 0 COMMENT '是否删除', PRIMARY KEY (`id`), UNIQUE KEY `uk_banner_id` (`banner_id`), KEY `idx_order` (`order_num`), KEY `idx_status` (`status`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='Banner表'; -- 资源推荐表 DROP TABLE IF EXISTS `tb_resource_recommend`; CREATE TABLE `tb_resource_recommend` ( `id` VARCHAR(50) NOT NULL COMMENT '推荐ID', `resource_id` VARCHAR(50) NOT NULL COMMENT '资源ID', `recommend_type` INT(4) DEFAULT 1 COMMENT '推荐类型(1-热门资源,2-思政资源)', `order_num` INT(4) DEFAULT 0 COMMENT '排序号', `reason` VARCHAR(255) DEFAULT NULL COMMENT '推荐理由', `creator` VARCHAR(50) DEFAULT NULL COMMENT '创建者', `updater` VARCHAR(50) DEFAULT NULL COMMENT '更新者', `create_time` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `update_time` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', `delete_time` TIMESTAMP NULL DEFAULT NULL COMMENT '删除时间', `deleted` TINYINT(1) NOT NULL DEFAULT 0 COMMENT '是否删除', PRIMARY KEY (`id`), KEY `idx_resource_id` (`resource_id`), KEY `idx_recommend_type` (`recommend_type`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='资源推荐表'; -- 标签表 DROP TABLE IF EXISTS `tb_tag`; CREATE TABLE `tb_tag` ( `id` VARCHAR(50) NOT NULL COMMENT '标签ID', `tag_id` VARCHAR(50) NOT NULL COMMENT '标签唯一标识', `name` VARCHAR(100) NOT NULL COMMENT '标签名称', `color` VARCHAR(20) DEFAULT NULL COMMENT '标签颜色', `description` VARCHAR(255) DEFAULT NULL COMMENT '标签描述', `tag_type` INT(4) DEFAULT 1 COMMENT '标签类型(1-文章分类标签 2-课程分类标签 3-学习任务分类标签)', `creator` VARCHAR(50) DEFAULT NULL COMMENT '创建者', `updater` VARCHAR(50) DEFAULT NULL COMMENT '更新者', `create_time` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `update_time` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', `delete_time` TIMESTAMP NULL DEFAULT NULL COMMENT '删除时间', `deleted` TINYINT(1) NOT NULL DEFAULT 0 COMMENT '是否删除', PRIMARY KEY (`id`), UNIQUE KEY `uk_tag_id` (`tag_id`), UNIQUE KEY `uk_tag_name_type` (`name`, `tag_type`), KEY `idx_tag_type` (`tag_type`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='标签表'; -- 资源标签关联表 DROP TABLE IF EXISTS `tb_resource_tag`; CREATE TABLE `tb_resource_tag` ( `id` VARCHAR(50) NOT NULL COMMENT '关联ID', `resource_id` VARCHAR(50) NOT NULL COMMENT '资源ID', `tag_id` VARCHAR(50) NOT NULL COMMENT '标签ID', `creator` VARCHAR(50) DEFAULT NULL COMMENT '创建者', `create_time` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', PRIMARY KEY (`id`), UNIQUE KEY `uk_resource_tag` (`resource_id`, `tag_id`), KEY `idx_resource` (`resource_id`), KEY `idx_tag` (`tag_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='资源标签关联表';