94 lines
4.8 KiB
SQL
94 lines
4.8 KiB
SQL
-- 创建知识库分类表
|
||
CREATE TABLE `yz_knowledge_category` (
|
||
`category_id` INT NOT NULL AUTO_INCREMENT COMMENT '分类ID',
|
||
`category_name` VARCHAR(100) NOT NULL COMMENT '分类名称',
|
||
`category_desc` VARCHAR(500) DEFAULT NULL COMMENT '分类描述',
|
||
`parent_id` INT DEFAULT 0 COMMENT '父分类ID,0表示顶级分类',
|
||
`sort_order` INT DEFAULT 0 COMMENT '排序序号',
|
||
`create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||
`update_time` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||
PRIMARY KEY (`category_id`),
|
||
KEY `idx_parent_id` (`parent_id`),
|
||
KEY `idx_sort_order` (`sort_order`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='知识库分类表';
|
||
|
||
-- 创建知识库标签表
|
||
CREATE TABLE `yz_knowledge_tags` (
|
||
`tag_id` INT NOT NULL AUTO_INCREMENT COMMENT '标签ID',
|
||
`tag_name` VARCHAR(50) NOT NULL COMMENT '标签名称',
|
||
`tag_color` VARCHAR(20) DEFAULT NULL COMMENT '标签颜色',
|
||
`usage_count` INT DEFAULT 0 COMMENT '使用次数',
|
||
`create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||
`update_time` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||
PRIMARY KEY (`tag_id`),
|
||
UNIQUE KEY `uk_tag_name` (`tag_name`),
|
||
KEY `idx_usage_count` (`usage_count`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='知识库标签表';
|
||
|
||
-- 创建知识库内容表
|
||
CREATE TABLE `yz_knowledge` (
|
||
`knowledge_id` INT NOT NULL AUTO_INCREMENT COMMENT '知识ID',
|
||
`title` VARCHAR(200) NOT NULL COMMENT '标题',
|
||
`category_id` INT DEFAULT NULL COMMENT '分类ID',
|
||
`tags` TEXT COMMENT '标签JSON数组,存储标签名称',
|
||
`author` VARCHAR(50) NOT NULL COMMENT '作者',
|
||
`content` LONGTEXT COMMENT '正文内容(富文本)',
|
||
`summary` VARCHAR(500) DEFAULT NULL COMMENT '摘要',
|
||
`cover_url` VARCHAR(500) DEFAULT NULL COMMENT '封面图片URL',
|
||
`status` TINYINT DEFAULT 0 COMMENT '状态:0-草稿,1-已发布,2-已归档',
|
||
`view_count` INT DEFAULT 0 COMMENT '查看次数',
|
||
`like_count` INT DEFAULT 0 COMMENT '点赞数',
|
||
`is_recommend` TINYINT DEFAULT 0 COMMENT '是否推荐:0-否,1-是',
|
||
`is_top` TINYINT DEFAULT 0 COMMENT '是否置顶:0-否,1-是',
|
||
`create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||
`update_time` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||
`create_by` VARCHAR(50) DEFAULT NULL COMMENT '创建人',
|
||
`update_by` VARCHAR(50) DEFAULT NULL COMMENT '更新人',
|
||
PRIMARY KEY (`knowledge_id`),
|
||
KEY `idx_category_id` (`category_id`),
|
||
KEY `idx_author` (`author`),
|
||
KEY `idx_status` (`status`),
|
||
KEY `idx_create_time` (`create_time`),
|
||
KEY `idx_view_count` (`view_count`),
|
||
KEY `idx_is_recommend` (`is_recommend`),
|
||
KEY `idx_is_top` (`is_top`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='知识库内容表';
|
||
|
||
-- 创建知识库收藏表
|
||
CREATE TABLE `yz_knowledge_favorites` (
|
||
`favorite_id` INT NOT NULL AUTO_INCREMENT COMMENT '收藏ID',
|
||
`knowledge_id` INT NOT NULL COMMENT '知识ID',
|
||
`user_id` INT NOT NULL COMMENT '用户ID',
|
||
`create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||
PRIMARY KEY (`favorite_id`),
|
||
UNIQUE KEY `uk_knowledge_user` (`knowledge_id`, `user_id`),
|
||
KEY `idx_user_id` (`user_id`),
|
||
CONSTRAINT `yz_fk_fav_knowledge` FOREIGN KEY (`knowledge_id`) REFERENCES `yz_knowledge` (`knowledge_id`) ON DELETE CASCADE,
|
||
CONSTRAINT `yz_fk_fav_user` FOREIGN KEY (`user_id`) REFERENCES `yz_users` (`id`) ON DELETE CASCADE
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='知识库收藏表';
|
||
|
||
-- 插入默认分类
|
||
INSERT INTO `yz_knowledge_category` (`category_name`, `category_desc`, `parent_id`, `sort_order`) VALUES
|
||
('技术文档', '技术相关的文档资料', 0, 1),
|
||
('产品手册', '产品使用手册和说明', 0, 2),
|
||
('用户指南', '用户操作指南和教程', 0, 3),
|
||
('常见问题', '常见问题解答', 0, 4),
|
||
('API文档', 'API接口文档', 0, 5),
|
||
('Vue', 'Vue框架相关', 1, 101),
|
||
('React', 'React框架相关', 1, 102),
|
||
('Go', 'Go语言相关', 1, 103);
|
||
|
||
-- 插入默认标签
|
||
INSERT INTO `yz_knowledge_tags` (`tag_name`, `tag_color`, `usage_count`) VALUES
|
||
('Vue', '#4CAF50', 0),
|
||
('React', '#42A5F5', 0),
|
||
('TypeScript', '#3178C6', 0),
|
||
('Element Plus', '#409EFF', 0),
|
||
('Vue Router', '#4FC08D', 0),
|
||
('Pinia', '#FFD54F', 0),
|
||
('Go', '#00ADD8', 0),
|
||
('Python', '#3776AB', 0);
|
||
|
||
--插入默认知识
|
||
INSERT INTO `yz_knowledge` (`title`, `category_id`, `tags`, `author`, `content`, `summary`, `cover_url`, `status`, `view_count`, `like_count`, `is_recommend`, `is_top`, `create_time`, `update_time`, `create_by`, `update_by`) VALUES
|
||
('Vue', 1, 'Vue', 'admin', 'Vue is a progressive framework for building user interfaces.', 'Vue is a progressive framework for building user interfaces.', 'https://vuejs.org/images/logo.png', 1, 0, 0, 0, 0, '2021-01-01 00:00:00', '2021-01-01 00:00:00', 'admin', 'admin'); |