use school_news; -- 资源/新闻表 DROP TABLE IF EXISTS `tb_resource`; CREATE TABLE `tb_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 '封面图片', `category_id` VARCHAR(50) DEFAULT NULL COMMENT '分类ID', `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_category` (`category_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='资源表'; -- 资源分类表 DROP TABLE IF EXISTS `tb_resource_category`; CREATE TABLE `tb_resource_category` ( `id` VARCHAR(50) NOT NULL COMMENT '分类ID', `category_id` VARCHAR(50) NOT NULL COMMENT '分类唯一标识', `name` VARCHAR(100) NOT NULL COMMENT '分类名称', `parent_id` VARCHAR(50) DEFAULT NULL COMMENT '父分类ID', `description` VARCHAR(255) DEFAULT NULL COMMENT '分类描述', `icon` VARCHAR(100) DEFAULT NULL COMMENT '分类图标', `order_num` INT(4) DEFAULT 0 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`), UNIQUE KEY `uk_category_id` (`category_id`), KEY `idx_parent` (`parent_id`) ) 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 '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`), 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', `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`), UNIQUE KEY `uk_resource` (`resource_id`), KEY `idx_order` (`order_num`) ) 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 '标签描述', `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` (`name`) ) 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='资源标签关联表'; -- 数据采集配置表 DROP TABLE IF EXISTS `tb_data_collection_config`; CREATE TABLE `tb_data_collection_config` ( `id` VARCHAR(50) NOT NULL COMMENT '配置ID', `name` VARCHAR(100) NOT NULL COMMENT '配置名称', `source_url` VARCHAR(500) NOT NULL COMMENT '采集源URL', `source_type` VARCHAR(50) DEFAULT NULL COMMENT '采集源类型', `frequency` VARCHAR(20) DEFAULT 'daily' COMMENT '采集频率(daily每天 weekly每周)', `category_id` VARCHAR(50) DEFAULT NULL COMMENT '默认分类ID', `status` INT(4) DEFAULT 1 COMMENT '状态(0禁用 1启用)', `last_collect_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`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='数据采集配置表'; -- 数据采集记录表 DROP TABLE IF EXISTS `tb_data_collection_log`; CREATE TABLE `tb_data_collection_log` ( `id` VARCHAR(50) NOT NULL COMMENT '记录ID', `config_id` VARCHAR(50) NOT NULL COMMENT '配置ID', `collect_count` INT(11) DEFAULT 0 COMMENT '采集数量', `success_count` INT(11) DEFAULT 0 COMMENT '成功数量', `fail_count` INT(11) DEFAULT 0 COMMENT '失败数量', `status` INT(4) DEFAULT 1 COMMENT '状态(0失败 1成功 2部分成功)', `message` TEXT COMMENT '采集消息', `collect_time` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '采集时间', PRIMARY KEY (`id`), KEY `idx_config` (`config_id`), KEY `idx_collect_time` (`collect_time`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='数据采集记录表';