56 lines
5.4 KiB
SQL
56 lines
5.4 KiB
SQL
-- AI文章内容表
|
||
-- 存储由AI生成的文章内容及其生命周期状态
|
||
-- 支持多渠道发布(百度百家号、头条、微信等)
|
||
-- 记录文章从选题、生成、审核到发布的完整流程
|
||
|
||
CREATE TABLE `ai_articles` (
|
||
`id` int NOT NULL AUTO_INCREMENT COMMENT '主键',
|
||
`batch_id` bigint UNSIGNED NOT NULL DEFAULT 0 COMMENT '批次ID,用于批量生成文章的分组',
|
||
`topic_type_id` int UNSIGNED NOT NULL DEFAULT 0 COMMENT '选题类型ID',
|
||
`prompt_workflow_id` int UNSIGNED NOT NULL DEFAULT 0 COMMENT '提示词工作流ID,关联AI生成模板',
|
||
`topic` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '文章选题/主题',
|
||
`title` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '文章标题',
|
||
`content` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '文章正文内容',
|
||
`department` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '部门名称(遗留字段)',
|
||
`departmentids` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '部门ID列表(遗留字段)',
|
||
`author_id` int NULL DEFAULT NULL COMMENT '作者ID,关联ai_authors.id(百家号账号)',
|
||
`author_name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '作者名称(百家号账号名)',
|
||
`department_id` int NULL DEFAULT NULL COMMENT '部门ID',
|
||
`department_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '部门名称',
|
||
`created_user_id` int NOT NULL DEFAULT 0 COMMENT '创建用户ID,关联ai_users.id',
|
||
`review_user_id` int NULL DEFAULT NULL COMMENT '审核用户ID,关联ai_users.id',
|
||
`publish_user_id` int NULL DEFAULT NULL COMMENT '发布用户ID,关联ai_users.id',
|
||
`status` enum('topic','cover_image','generate','generate_failed','draft','pending_review','approved','rejected','published_review','published','failed') CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT 'draft' COMMENT '文章状态:topic=选题|cover_image=封面图|generate=生成中|generate_failed=生成失败|draft=草稿|pending_review=待审核(文章已生成)|approved=审核通过|rejected=审核拒绝|published_review=发布审核中|published=已发布|failed=发布失败',
|
||
`channel` tinyint(1) NOT NULL DEFAULT 1 COMMENT '发布渠道:1=百度百家号|2=今日头条|3=微信公众号',
|
||
`review_comment` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '审核意见/备注',
|
||
`publish_time` timestamp NULL DEFAULT NULL COMMENT '发布时间',
|
||
`baijiahao_id` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '百家号文章ID',
|
||
`baijiahao_status` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '百家号平台状态',
|
||
`word_count` int NULL DEFAULT 0 COMMENT '文章字数',
|
||
`image_count` int NULL DEFAULT 0 COMMENT '文章配图数量',
|
||
`coze_tag` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT 'Coze生成的标签',
|
||
`created_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||
`updated_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||
PRIMARY KEY (`id`) USING BTREE,
|
||
|
||
-- 索引定义
|
||
INDEX `created_user_id`(`created_user_id` ASC) USING BTREE COMMENT '创建用户索引',
|
||
INDEX `review_user_id`(`review_user_id` ASC) USING BTREE COMMENT '审核用户索引',
|
||
INDEX `publish_user_id`(`publish_user_id` ASC) USING BTREE COMMENT '发布用户索引',
|
||
INDEX `idx_articles_status_user_created`(`status` ASC, `created_user_id` ASC, `created_at` DESC) USING BTREE COMMENT '状态+创建用户+创建时间组合索引',
|
||
INDEX `idx_articles_status_created`(`status` ASC, `created_at` DESC) USING BTREE COMMENT '状态+创建时间索引',
|
||
INDEX `idx_articles_status`(`status` ASC) USING BTREE COMMENT '状态索引',
|
||
INDEX `idx_articles_created_at`(`created_at` DESC) USING BTREE COMMENT '创建时间索引',
|
||
INDEX `idx_status_id_author`(`status` ASC, `id` ASC, `author_id` ASC) USING BTREE COMMENT '状态+ID+作者组合索引',
|
||
INDEX `idx_articles_updated_at`(`updated_at` DESC) USING BTREE COMMENT '更新时间索引',
|
||
INDEX `idx_articles_status_prompt_topic_id`(`status` ASC, `prompt_workflow_id` ASC, `topic` ASC, `id` ASC) USING BTREE COMMENT '状态+工作流+选题+ID组合索引',
|
||
INDEX `idx_status_author_updated_id`(`status` ASC, `author_id` ASC, `updated_at` ASC, `id` ASC) USING BTREE COMMENT '状态+作者+更新时间+ID组合索引',
|
||
INDEX `idx_author_status_updated_id`(`author_id` ASC, `status` ASC, `updated_at` ASC, `id` ASC) USING BTREE COMMENT '作者+状态+更新时间+ID组合索引',
|
||
|
||
-- 外键约束
|
||
CONSTRAINT `ai_articles_ibfk_1` FOREIGN KEY (`author_id`) REFERENCES `ai_authors` (`id`) ON DELETE RESTRICT ON UPDATE RESTRICT,
|
||
CONSTRAINT `ai_articles_ibfk_2` FOREIGN KEY (`created_user_id`) REFERENCES `ai_users` (`id`) ON DELETE RESTRICT ON UPDATE RESTRICT,
|
||
CONSTRAINT `ai_articles_ibfk_3` FOREIGN KEY (`review_user_id`) REFERENCES `ai_users` (`id`) ON DELETE RESTRICT ON UPDATE RESTRICT,
|
||
CONSTRAINT `ai_articles_ibfk_4` FOREIGN KEY (`publish_user_id`) REFERENCES `ai_users` (`id`) ON DELETE RESTRICT ON UPDATE RESTRICT
|
||
) ENGINE = InnoDB AUTO_INCREMENT = 1115 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic;
|