Files
nl-blogs/server/nl_blog.sql

570 lines
33 KiB
MySQL
Raw Normal View History

2026-01-15 13:51:44 +08:00
/*
Navicat Premium Dump SQL
2026-06-24 17:06:22 +08:00
Source Server : -
2026-01-15 13:51:44 +08:00
Source Server Type : MySQL
2026-06-24 17:06:22 +08:00
Source Server Version : 80408 (8.4.8)
Source Host : localhost:3306
2026-01-15 13:51:44 +08:00
Source Schema : nl_blog
Target Server Type : MySQL
2026-06-24 17:06:22 +08:00
Target Server Version : 80408 (8.4.8)
2026-01-15 13:51:44 +08:00
File Encoding : 65001
2026-06-24 17:06:22 +08:00
Date: 24/06/2026 16:52:32
2026-01-15 13:51:44 +08:00
*/
SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;
2026-01-15 15:37:34 +08:00
-- ----------------------------
-- Table structure for about_profiles
-- ----------------------------
DROP TABLE IF EXISTS `about_profiles`;
CREATE TABLE `about_profiles` (
`id` int NOT NULL AUTO_INCREMENT,
`name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL,
`avatar` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '',
`location` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '',
`bio` text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL,
`email` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '',
`wechat` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '',
`tech_stack` text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL COMMENT 'JSON string or comma separated list',
2026-01-15 16:44:00 +08:00
`experiences` text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL COMMENT 'JSON string of experience list',
2026-06-25 16:57:06 +08:00
`is_primary` tinyint(1) NOT NULL DEFAULT 0 COMMENT '是否主展示资料0否 1是',
2026-01-16 13:01:21 +08:00
`created_at` bigint NOT NULL DEFAULT 0,
`updated_at` bigint NOT NULL DEFAULT 0,
`deleted_at` bigint NOT NULL DEFAULT 0,
2026-01-15 15:37:34 +08:00
PRIMARY KEY (`id`) USING BTREE
2026-06-25 16:57:06 +08:00
) ENGINE = InnoDB AUTO_INCREMENT = 4 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '关于页个人资料表' ROW_FORMAT = DYNAMIC;
2026-01-15 15:37:34 +08:00
2026-01-15 13:51:44 +08:00
-- ----------------------------
-- Table structure for access_logs
-- ----------------------------
DROP TABLE IF EXISTS `access_logs`;
CREATE TABLE `access_logs` (
`id` bigint UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`ip` varchar(45) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '访问者IP地址',
`user_agent` text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL COMMENT '访问者浏览器信息',
`path` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '访问路径',
`method` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT 'HTTP方法',
`status_code` int UNSIGNED NOT NULL COMMENT 'HTTP状态码',
`response_time` int UNSIGNED NOT NULL COMMENT '响应时间(毫秒)',
2026-06-24 16:50:04 +08:00
`region` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT 'IP归属地',
2026-01-16 13:01:21 +08:00
`deleted_at` bigint NOT NULL DEFAULT 0,
2026-01-16 13:38:52 +08:00
`created_at` bigint NOT NULL DEFAULT 0,
2026-01-15 13:51:44 +08:00
PRIMARY KEY (`id`) USING BTREE,
INDEX `idx_path`(`path` ASC) USING BTREE COMMENT '按访问路径查询索引',
INDEX `idx_status_code`(`status_code` ASC) USING BTREE COMMENT '按状态码查询索引'
2026-06-24 17:06:22 +08:00
) ENGINE = InnoDB AUTO_INCREMENT = 27003 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '访问日志表' ROW_FORMAT = DYNAMIC;
2026-01-15 13:51:44 +08:00
2026-01-19 20:21:09 +08:00
-- ----------------------------
-- Table structure for attachment_categories
-- ----------------------------
DROP TABLE IF EXISTS `attachment_categories`;
CREATE TABLE `attachment_categories` (
`id` int UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '分类名称',
`description` text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL COMMENT '分类描述',
`sort_order` int UNSIGNED NULL DEFAULT 0 COMMENT '排序',
`deleted_at` bigint NOT NULL DEFAULT 0,
`created_at` bigint NOT NULL DEFAULT 0,
`updated_at` bigint NOT NULL DEFAULT 0,
PRIMARY KEY (`id`) USING BTREE,
INDEX `idx_sort_order`(`sort_order` ASC) USING BTREE
2026-06-24 17:06:22 +08:00
) ENGINE = InnoDB AUTO_INCREMENT = 2 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '附件分类表' ROW_FORMAT = DYNAMIC;
2026-01-19 20:21:09 +08:00
-- ----------------------------
-- Table structure for attachments
-- ----------------------------
DROP TABLE IF EXISTS `attachments`;
CREATE TABLE `attachments` (
`id` bigint UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`category_id` int UNSIGNED NULL DEFAULT NULL COMMENT '附件分类ID',
`original_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '原始文件名',
`stored_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '存储文件名',
`file_path` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '文件路径',
`file_url` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '文件访问URL',
`file_size` bigint UNSIGNED NOT NULL DEFAULT 0 COMMENT '文件大小(字节)',
`file_type` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '文件类型: image/video/document/other',
`mime_type` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT 'MIME类型',
`storage_type` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'local' COMMENT '存储类型: local/qcloud/aliyun/qiniu',
`oss_config_id` int UNSIGNED NULL DEFAULT NULL COMMENT 'OSS配置ID',
`deleted_at` bigint NOT NULL DEFAULT 0,
`created_at` bigint NOT NULL DEFAULT 0,
`updated_at` bigint NOT NULL DEFAULT 0,
PRIMARY KEY (`id`) USING BTREE,
INDEX `idx_category_id`(`category_id` ASC) USING BTREE,
INDEX `idx_storage_type`(`storage_type` ASC) USING BTREE,
INDEX `idx_file_type`(`file_type` ASC) USING BTREE,
INDEX `idx_created_at`(`created_at` ASC) USING BTREE
2026-06-24 17:06:22 +08:00
) ENGINE = InnoDB AUTO_INCREMENT = 76 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '附件表' ROW_FORMAT = DYNAMIC;
2026-01-19 20:21:09 +08:00
2026-01-16 17:03:34 +08:00
-- ----------------------------
-- Table structure for categories
-- ----------------------------
DROP TABLE IF EXISTS `categories`;
CREATE TABLE `categories` (
`id` int UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '分类ID',
`name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '分类名称',
`slug` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '分类别名',
`description` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '描述',
`sort_order` int UNSIGNED NULL DEFAULT 0 COMMENT '排序',
`deleted_at` bigint NOT NULL DEFAULT 0,
`created_at` bigint NOT NULL DEFAULT 0,
`updated_at` bigint NOT NULL DEFAULT 0,
PRIMARY KEY (`id`) USING BTREE,
UNIQUE INDEX `uk_slug`(`slug` ASC) USING BTREE,
INDEX `idx_sort_order`(`sort_order` ASC) USING BTREE
2026-06-24 17:06:22 +08:00
) ENGINE = InnoDB AUTO_INCREMENT = 7 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '文章分类表' ROW_FORMAT = DYNAMIC;
2026-01-16 17:03:34 +08:00
-- ----------------------------
-- Table structure for column_posts
-- ----------------------------
DROP TABLE IF EXISTS `column_posts`;
CREATE TABLE `column_posts` (
`column_id` int UNSIGNED NOT NULL COMMENT '专栏ID',
`post_id` int UNSIGNED NOT NULL COMMENT '文章ID',
`sort_order` int UNSIGNED NULL DEFAULT 0 COMMENT '排序',
`created_at` bigint NOT NULL DEFAULT 0,
PRIMARY KEY (`column_id`, `post_id`) USING BTREE,
INDEX `idx_post_id`(`post_id` ASC) USING BTREE
2026-06-24 17:06:22 +08:00
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '专栏文章关联表' ROW_FORMAT = DYNAMIC;
2026-01-16 17:03:34 +08:00
-- ----------------------------
-- Table structure for columns
-- ----------------------------
DROP TABLE IF EXISTS `columns`;
CREATE TABLE `columns` (
`id` int UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '专栏ID',
`name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '专栏名称',
`description` text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL COMMENT '专栏描述',
`cover` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '专栏封面',
`is_active` tinyint(1) NOT NULL DEFAULT 1 COMMENT '是否启用',
`sort_order` int UNSIGNED NULL DEFAULT 0 COMMENT '排序',
`deleted_at` bigint NOT NULL DEFAULT 0,
`created_at` bigint NOT NULL DEFAULT 0,
`updated_at` bigint NOT NULL DEFAULT 0,
PRIMARY KEY (`id`) USING BTREE,
INDEX `idx_sort_order`(`sort_order` ASC) USING BTREE
2026-06-24 17:06:22 +08:00
) ENGINE = InnoDB AUTO_INCREMENT = 4 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '专栏表' ROW_FORMAT = DYNAMIC;
2026-01-16 17:03:34 +08:00
2026-01-16 09:08:29 +08:00
-- ----------------------------
-- Table structure for email_suffixes
-- ----------------------------
DROP TABLE IF EXISTS `email_suffixes`;
CREATE TABLE `email_suffixes` (
`id` int NOT NULL AUTO_INCREMENT,
`suffix` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '邮箱后缀',
`is_active` tinyint(1) NOT NULL DEFAULT 1 COMMENT '是否启用',
`sort_order` int NOT NULL DEFAULT 0 COMMENT '排序',
2026-01-16 13:38:52 +08:00
`deleted_at` bigint NOT NULL DEFAULT 0,
2026-01-16 13:01:21 +08:00
`created_at` bigint NOT NULL DEFAULT 0,
`updated_at` bigint NOT NULL DEFAULT 0,
2026-01-16 09:08:29 +08:00
PRIMARY KEY (`id`) USING BTREE,
UNIQUE INDEX `uk_suffix`(`suffix` ASC) USING BTREE
2026-06-24 17:06:22 +08:00
) ENGINE = InnoDB AUTO_INCREMENT = 15 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '邮箱后缀配置表' ROW_FORMAT = DYNAMIC;
2026-01-16 09:08:29 +08:00
-- ----------------------------
-- Table structure for inquiries
-- ----------------------------
DROP TABLE IF EXISTS `inquiries`;
CREATE TABLE `inquiries` (
`id` int NOT NULL AUTO_INCREMENT,
`name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '姓名',
`company` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '公司/组织',
`contact_method` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '联系方式类型(email/wechat/phone)',
`contact_value` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '联系方式值',
`budget` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '预算范围',
`description` text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL COMMENT '需求描述',
`status` tinyint NOT NULL DEFAULT 0 COMMENT '状态: 0-未读, 1-已读, 2-已联系',
2026-01-16 13:38:52 +08:00
`deleted_at` bigint NOT NULL DEFAULT 0,
2026-01-16 13:01:21 +08:00
`created_at` bigint NOT NULL DEFAULT 0,
`updated_at` bigint NOT NULL DEFAULT 0,
2026-01-16 09:08:29 +08:00
PRIMARY KEY (`id`) USING BTREE
2026-06-24 17:06:22 +08:00
) ENGINE = InnoDB AUTO_INCREMENT = 2 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '合作咨询表' ROW_FORMAT = DYNAMIC;
2026-01-16 09:08:29 +08:00
2026-01-15 15:37:34 +08:00
-- ----------------------------
-- Table structure for operation_logs
-- ----------------------------
DROP TABLE IF EXISTS `operation_logs`;
CREATE TABLE `operation_logs` (
`id` bigint UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`user_id` bigint UNSIGNED NOT NULL COMMENT '操作用户ID',
`username` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '操作用户名',
`ip` varchar(45) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '操作IP地址',
2026-01-20 14:31:39 +08:00
`region` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT 'IP归属地',
2026-01-15 15:37:34 +08:00
`path` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '操作路径',
`method` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT 'HTTP方法',
2026-06-24 17:06:22 +08:00
`action` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '操作描述',
2026-01-15 15:37:34 +08:00
`params` text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL COMMENT '请求参数',
`status` int NOT NULL COMMENT '响应状态码',
`duration` int NOT NULL COMMENT '响应时间(毫秒)',
2026-01-16 13:01:21 +08:00
`deleted_at` bigint NOT NULL DEFAULT 0,
2026-01-16 13:38:52 +08:00
`created_at` bigint NOT NULL DEFAULT 0,
2026-01-15 15:37:34 +08:00
PRIMARY KEY (`id`) USING BTREE,
2026-06-24 17:06:22 +08:00
INDEX `idx_user_id`(`user_id` ASC) USING BTREE,
INDEX `idx_action`(`action` ASC) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 678 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '操作日志表' ROW_FORMAT = DYNAMIC;
2026-01-19 20:21:09 +08:00
-- ----------------------------
-- Table structure for oss_configs
-- ----------------------------
DROP TABLE IF EXISTS `oss_configs`;
CREATE TABLE `oss_configs` (
`id` int UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '配置名称',
`storage_type` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '存储类型: local/qcloud/aliyun/qiniu',
`access_key` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '',
`secret_key` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '',
`bucket` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '存储桶名称',
`region` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '区域',
`domain` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '访问域名',
`is_active` tinyint(1) NOT NULL DEFAULT 0 COMMENT '是否启用',
`deleted_at` bigint NOT NULL DEFAULT 0,
`created_at` bigint NOT NULL DEFAULT 0,
`updated_at` bigint NOT NULL DEFAULT 0,
PRIMARY KEY (`id`) USING BTREE,
INDEX `idx_storage_type`(`storage_type` ASC) USING BTREE,
INDEX `idx_is_active`(`is_active` ASC) USING BTREE
2026-06-24 17:06:22 +08:00
) ENGINE = InnoDB AUTO_INCREMENT = 5 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = 'OSS配置表' ROW_FORMAT = DYNAMIC;
2026-01-19 20:21:09 +08:00
2026-01-16 09:08:29 +08:00
-- ----------------------------
-- Table structure for partners
-- ----------------------------
DROP TABLE IF EXISTS `partners`;
CREATE TABLE `partners` (
`id` int UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '合作伙伴名称',
`logo` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '合作伙伴Logo URL',
`description` text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL COMMENT '合作伙伴介绍',
`url` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '合作伙伴官网链接',
`sort_order` int UNSIGNED NULL DEFAULT 0 COMMENT '排序权重',
2026-01-16 13:01:21 +08:00
`deleted_at` bigint NOT NULL DEFAULT 0,
2026-01-16 13:38:52 +08:00
`created_at` bigint NOT NULL DEFAULT 0,
`updated_at` bigint NOT NULL DEFAULT 0,
2026-01-16 09:08:29 +08:00
PRIMARY KEY (`id`) USING BTREE
2026-06-24 17:06:22 +08:00
) ENGINE = InnoDB AUTO_INCREMENT = 6 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '合作伙伴表' ROW_FORMAT = DYNAMIC;
2026-01-15 15:37:34 +08:00
-- ----------------------------
-- Table structure for permissions
-- ----------------------------
DROP TABLE IF EXISTS `permissions`;
CREATE TABLE `permissions` (
`id` bigint UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '权限名称',
`resource` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '资源名称',
`action` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '操作名称',
2026-01-16 13:01:21 +08:00
`deleted_at` bigint NOT NULL DEFAULT 0,
2026-01-16 13:38:52 +08:00
`created_at` bigint NOT NULL DEFAULT 0,
`updated_at` bigint NOT NULL DEFAULT 0,
2026-01-15 15:37:34 +08:00
PRIMARY KEY (`id`) USING BTREE,
UNIQUE INDEX `unique_resource_action`(`resource` ASC, `action` ASC) USING BTREE
2026-06-24 17:06:22 +08:00
) ENGINE = InnoDB AUTO_INCREMENT = 31 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '权限表' ROW_FORMAT = DYNAMIC;
2026-01-15 15:37:34 +08:00
2026-01-16 17:03:34 +08:00
-- ----------------------------
-- Table structure for post_history
-- ----------------------------
DROP TABLE IF EXISTS `post_history`;
CREATE TABLE `post_history` (
`id` int UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '历史记录ID',
`post_id` int UNSIGNED NOT NULL COMMENT '文章ID',
`version` int UNSIGNED NOT NULL DEFAULT 1 COMMENT '版本号',
`title` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '文章标题',
`category_id` int UNSIGNED NOT NULL DEFAULT 0 COMMENT '文章分类ID',
2026-06-24 17:06:22 +08:00
`column_id` int UNSIGNED NULL DEFAULT NULL COMMENT '专栏ID快照',
2026-06-24 16:50:04 +08:00
`tag_ids` json NULL COMMENT '标签ID快照',
2026-01-16 17:03:34 +08:00
`excerpt` text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL COMMENT '文章摘要',
`content` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '文章内容',
`is_published` tinyint(1) NULL DEFAULT 1 COMMENT '是否已发布',
`modified_by` int UNSIGNED NOT NULL DEFAULT 0 COMMENT '修改人ID',
`modified_at` bigint NOT NULL DEFAULT 0 COMMENT '修改时间',
`created_at` bigint NOT NULL DEFAULT 0,
`deleted_at` bigint NOT NULL DEFAULT 0,
PRIMARY KEY (`id`) USING BTREE,
INDEX `idx_post_id`(`post_id` ASC) USING BTREE,
INDEX `idx_version`(`version` ASC) USING BTREE
2026-06-24 17:06:22 +08:00
) ENGINE = InnoDB AUTO_INCREMENT = 60 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '文章历史记录表' ROW_FORMAT = DYNAMIC;
2026-01-16 17:03:34 +08:00
2026-01-15 13:51:44 +08:00
-- ----------------------------
-- Table structure for post_tags
-- ----------------------------
DROP TABLE IF EXISTS `post_tags`;
CREATE TABLE `post_tags` (
`tag_id` bigint UNSIGNED NOT NULL COMMENT '关联的标签ID',
2026-01-15 16:53:36 +08:00
`post_id` int UNSIGNED NOT NULL COMMENT '关联的文章ID',
2026-01-16 13:38:52 +08:00
`created_at` bigint NOT NULL DEFAULT 0,
2026-01-15 13:51:44 +08:00
PRIMARY KEY (`post_id`, `tag_id`) USING BTREE,
2026-01-16 17:03:34 +08:00
INDEX `idx_tag_id`(`tag_id` ASC) USING BTREE
2026-06-24 17:06:22 +08:00
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '文章标签关联表' ROW_FORMAT = DYNAMIC;
2026-01-15 13:51:44 +08:00
-- ----------------------------
-- Table structure for posts
-- ----------------------------
DROP TABLE IF EXISTS `posts`;
CREATE TABLE `posts` (
2026-01-15 16:53:36 +08:00
`id` int UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '文章唯一标识自增ID',
`original_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '原始字符串ID备份',
2026-01-15 13:51:44 +08:00
`title` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '文章标题',
2026-01-16 17:03:34 +08:00
`category_id` int UNSIGNED NOT NULL DEFAULT 0 COMMENT '文章分类ID',
2026-01-19 16:14:08 +08:00
`column_id` int UNSIGNED NULL DEFAULT NULL COMMENT '专栏ID可选',
2026-01-15 13:51:44 +08:00
`excerpt` text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL COMMENT '文章摘要',
`content` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '文章内容',
2026-06-25 16:57:06 +08:00
`read_count` int UNSIGNED NOT NULL DEFAULT 0 COMMENT '阅读量',
`is_published` tinyint(1) NOT NULL DEFAULT 1 COMMENT '是否已发布0草稿1已发布',
2026-06-25 17:57:51 +08:00
`user_id` int UNSIGNED NOT NULL DEFAULT 0 COMMENT '创建者用户ID',
2026-01-16 13:01:21 +08:00
`deleted_at` bigint NOT NULL DEFAULT 0,
2026-01-16 13:38:52 +08:00
`created_at` bigint NOT NULL DEFAULT 0,
`updated_at` bigint NOT NULL DEFAULT 0,
2026-01-15 13:51:44 +08:00
PRIMARY KEY (`id`) USING BTREE,
2026-01-19 14:01:37 +08:00
INDEX `idx_category_id`(`category_id` ASC) USING BTREE COMMENT '按分类查询索引',
2026-01-19 16:14:08 +08:00
INDEX `idx_column_id`(`column_id` ASC) USING BTREE COMMENT '按专栏查询索引',
2026-01-15 13:51:44 +08:00
INDEX `idx_is_published`(`is_published` ASC) USING BTREE COMMENT '按发布状态查询索引',
2026-06-25 17:57:51 +08:00
INDEX `idx_user_id`(`user_id` ASC) USING BTREE,
2026-01-16 17:03:34 +08:00
INDEX `idx_original_id`(`original_id` ASC) USING BTREE,
2026-01-19 14:01:37 +08:00
FULLTEXT INDEX `idx_title_content`(`title`, `content`) COMMENT '标题和内容全文索引,用于搜索'
2026-06-24 17:06:22 +08:00
) ENGINE = InnoDB AUTO_INCREMENT = 36 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '博客文章表(新结构)' ROW_FORMAT = DYNAMIC;
2026-01-15 13:51:44 +08:00
2026-01-15 15:37:34 +08:00
-- ----------------------------
-- Table structure for role_permissions
-- ----------------------------
DROP TABLE IF EXISTS `role_permissions`;
CREATE TABLE `role_permissions` (
`role_id` bigint UNSIGNED NOT NULL COMMENT '角色ID',
`permission_id` bigint UNSIGNED NOT NULL COMMENT '权限ID',
PRIMARY KEY (`role_id`, `permission_id`) USING BTREE,
2026-01-16 17:03:34 +08:00
INDEX `role_permissions_ibfk_2`(`permission_id` ASC) USING BTREE
2026-06-24 17:06:22 +08:00
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '角色权限关联表' ROW_FORMAT = DYNAMIC;
2026-01-15 15:37:34 +08:00
-- ----------------------------
-- Table structure for roles
-- ----------------------------
DROP TABLE IF EXISTS `roles`;
CREATE TABLE `roles` (
`id` bigint UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '角色名称',
`description` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '角色描述',
2026-01-16 13:01:21 +08:00
`deleted_at` bigint NOT NULL DEFAULT 0,
2026-01-16 13:38:52 +08:00
`created_at` bigint NOT NULL DEFAULT 0,
`updated_at` bigint NOT NULL DEFAULT 0,
2026-01-15 15:37:34 +08:00
PRIMARY KEY (`id`) USING BTREE,
UNIQUE INDEX `name`(`name` ASC) USING BTREE
2026-06-24 17:06:22 +08:00
) ENGINE = InnoDB AUTO_INCREMENT = 4 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '角色表' ROW_FORMAT = DYNAMIC;
2026-01-15 15:37:34 +08:00
2026-01-19 20:21:09 +08:00
-- ----------------------------
-- Table structure for search_logs
-- ----------------------------
DROP TABLE IF EXISTS `search_logs`;
CREATE TABLE `search_logs` (
`id` bigint UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`keyword` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '搜索关键词',
`search_type` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '搜索类型: category/tag/column/keyword',
`user_ip` varchar(45) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '用户IP地址',
`user_location` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '用户归属地',
`deleted_at` bigint NOT NULL DEFAULT 0,
`created_at` bigint NOT NULL DEFAULT 0,
PRIMARY KEY (`id`) USING BTREE,
INDEX `idx_search_type`(`search_type` ASC) USING BTREE,
INDEX `idx_created_at`(`created_at` ASC) USING BTREE
2026-06-24 17:06:22 +08:00
) ENGINE = InnoDB AUTO_INCREMENT = 25 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '搜索记录表' ROW_FORMAT = DYNAMIC;
2026-01-19 20:21:09 +08:00
2026-01-15 13:51:44 +08:00
-- ----------------------------
-- Table structure for settings
-- ----------------------------
DROP TABLE IF EXISTS `settings`;
CREATE TABLE `settings` (
`id` bigint UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`key_name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '配置项键名',
`value` text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL COMMENT '配置项值',
`description` text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL COMMENT '配置项描述',
2026-01-16 13:01:21 +08:00
`deleted_at` bigint NOT NULL DEFAULT 0,
2026-01-16 13:38:52 +08:00
`created_at` bigint NOT NULL DEFAULT 0,
`updated_at` bigint NOT NULL DEFAULT 0,
2026-01-15 13:51:44 +08:00
PRIMARY KEY (`id`) USING BTREE,
UNIQUE INDEX `key_name`(`key_name` ASC) USING BTREE,
INDEX `idx_key_name`(`key_name` ASC) USING BTREE COMMENT '按键名查询索引'
2026-06-24 17:06:22 +08:00
) ENGINE = InnoDB AUTO_INCREMENT = 16 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '网站配置表' ROW_FORMAT = DYNAMIC;
-- ----------------------------
-- Table structure for code_types
-- ----------------------------
DROP TABLE IF EXISTS `code_types`;
CREATE TABLE `code_types` (
2026-06-25 16:57:06 +08:00
`id` bigint UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '主键ID',
2026-06-24 17:06:22 +08:00
`name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '类型名称',
`category` tinyint NOT NULL DEFAULT 0 COMMENT '0前端 1后端 2其他',
`deleted_at` bigint NOT NULL DEFAULT 0,
`created_at` bigint NOT NULL DEFAULT 0,
`updated_at` bigint NOT NULL DEFAULT 0,
PRIMARY KEY (`id`) USING BTREE,
UNIQUE INDEX `uk_name`(`name` ASC, `deleted_at` ASC) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '代码类型表' ROW_FORMAT = DYNAMIC;
2026-01-15 13:51:44 +08:00
-- ----------------------------
-- Table structure for snippets
-- ----------------------------
DROP TABLE IF EXISTS `snippets`;
CREATE TABLE `snippets` (
2026-06-25 16:57:06 +08:00
`id` bigint UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '代码片段ID',
2026-01-15 13:51:44 +08:00
`title` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '代码片段标题',
`code` text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '代码内容',
`type` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '代码类型javascript、css、html等',
2026-06-24 17:06:22 +08:00
`code_type_id` bigint UNSIGNED NULL DEFAULT NULL COMMENT '代码类型ID',
2026-01-15 13:51:44 +08:00
`description` text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL COMMENT '代码片段描述',
2026-06-25 16:57:06 +08:00
`view_count` int UNSIGNED NOT NULL DEFAULT 0 COMMENT '查看次数',
2026-01-16 13:01:21 +08:00
`deleted_at` bigint NOT NULL DEFAULT 0,
2026-01-16 13:38:52 +08:00
`created_at` bigint NOT NULL DEFAULT 0,
`updated_at` bigint NOT NULL DEFAULT 0,
2026-01-15 13:51:44 +08:00
PRIMARY KEY (`id`) USING BTREE,
INDEX `idx_type`(`type` ASC) USING BTREE COMMENT '按代码类型查询索引',
INDEX `idx_view_count`(`view_count` ASC) USING BTREE COMMENT '按查看次数查询索引'
2026-06-24 17:06:22 +08:00
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '代码片段表' ROW_FORMAT = DYNAMIC;
2026-01-15 13:51:44 +08:00
-- ----------------------------
-- Table structure for tags
-- ----------------------------
DROP TABLE IF EXISTS `tags`;
CREATE TABLE `tags` (
`id` bigint UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '标签名称',
`slug` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '标签别名用于URL',
2026-01-16 13:01:21 +08:00
`deleted_at` bigint NOT NULL DEFAULT 0,
2026-01-16 13:38:52 +08:00
`created_at` bigint NOT NULL DEFAULT 0,
`updated_at` bigint NOT NULL DEFAULT 0,
2026-01-15 13:51:44 +08:00
PRIMARY KEY (`id`) USING BTREE,
UNIQUE INDEX `name`(`name` ASC) USING BTREE,
UNIQUE INDEX `slug`(`slug` ASC) USING BTREE,
INDEX `idx_slug`(`slug` ASC) USING BTREE COMMENT '按别名查询索引'
2026-06-24 17:06:22 +08:00
) ENGINE = InnoDB AUTO_INCREMENT = 15 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '标签表' ROW_FORMAT = DYNAMIC;
2026-01-15 13:51:44 +08:00
2026-01-16 09:08:29 +08:00
-- ----------------------------
-- Table structure for testimonials
-- ----------------------------
DROP TABLE IF EXISTS `testimonials`;
CREATE TABLE `testimonials` (
`id` int UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '客户姓名',
`role` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '客户职位',
`content` text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '评价内容',
`avatar` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '客户头像URL',
`rating` tinyint UNSIGNED NULL DEFAULT 5 COMMENT '评分(1-5)',
`sort_order` int UNSIGNED NULL DEFAULT 0 COMMENT '排序权重',
2026-01-16 13:01:21 +08:00
`deleted_at` bigint NOT NULL DEFAULT 0,
2026-01-16 13:38:52 +08:00
`created_at` bigint NOT NULL DEFAULT 0,
`updated_at` bigint NOT NULL DEFAULT 0,
2026-01-16 09:08:29 +08:00
PRIMARY KEY (`id`) USING BTREE
2026-06-24 17:06:22 +08:00
) ENGINE = InnoDB AUTO_INCREMENT = 7 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '客户评价表' ROW_FORMAT = DYNAMIC;
2026-01-16 09:08:29 +08:00
2026-01-16 10:19:30 +08:00
-- ----------------------------
-- Table structure for user_access_logs
-- ----------------------------
DROP TABLE IF EXISTS `user_access_logs`;
CREATE TABLE `user_access_logs` (
`id` int NOT NULL AUTO_INCREMENT,
`user_id` int NULL DEFAULT 0 COMMENT '用户ID未登录用户为0',
`user_ip` varchar(45) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '用户IP地址',
`user_location` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '用户归属地',
`article_id` int NOT NULL COMMENT '访问的文章ID',
2026-01-16 13:01:21 +08:00
`deleted_at` bigint NOT NULL DEFAULT 0,
2026-01-16 13:38:52 +08:00
`access_time` bigint NOT NULL DEFAULT 0,
2026-01-16 10:19:30 +08:00
PRIMARY KEY (`id`) USING BTREE,
INDEX `idx_user_id`(`user_id` ASC) USING BTREE,
2026-06-24 17:06:22 +08:00
INDEX `idx_article_id`(`article_id` ASC) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 298 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '用户访问记录表' ROW_FORMAT = DYNAMIC;
2026-01-16 10:19:30 +08:00
2026-01-15 13:51:44 +08:00
-- ----------------------------
-- Table structure for users
-- ----------------------------
DROP TABLE IF EXISTS `users`;
CREATE TABLE `users` (
`id` bigint UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`username` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '用户名',
`email` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '邮箱地址',
2026-06-25 17:57:51 +08:00
`avatar` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '头像URL',
2026-01-15 13:51:44 +08:00
`password_hash` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '密码哈希值',
2026-01-15 15:37:34 +08:00
`role_id` bigint UNSIGNED NULL DEFAULT NULL COMMENT '角色ID',
2026-01-15 13:51:44 +08:00
`role` enum('admin','editor','viewer') CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT 'viewer' COMMENT '用户角色(兼容旧版)',
`is_active` tinyint(1) NULL DEFAULT 1 COMMENT '是否激活0禁用1激活',
2026-01-16 13:01:21 +08:00
`deleted_at` bigint NOT NULL DEFAULT 0,
2026-01-16 13:38:52 +08:00
`created_at` bigint NOT NULL DEFAULT 0,
`updated_at` bigint NOT NULL DEFAULT 0,
2026-01-15 13:51:44 +08:00
PRIMARY KEY (`id`) USING BTREE,
UNIQUE INDEX `username`(`username` ASC) USING BTREE,
UNIQUE INDEX `email`(`email` ASC) USING BTREE,
INDEX `idx_username`(`username` ASC) USING BTREE COMMENT '按用户名查询索引',
INDEX `idx_email`(`email` ASC) USING BTREE COMMENT '按邮箱查询索引',
INDEX `idx_role`(`role` ASC) USING BTREE COMMENT '按角色查询索引',
2026-01-16 17:03:34 +08:00
INDEX `users_ibfk_1`(`role_id` ASC) USING BTREE
2026-06-24 17:06:22 +08:00
) ENGINE = InnoDB AUTO_INCREMENT = 6 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '用户表' ROW_FORMAT = DYNAMIC;
2026-01-15 13:51:44 +08:00
-- ----------------------------
-- Table structure for work_gallery
-- ----------------------------
DROP TABLE IF EXISTS `work_gallery`;
CREATE TABLE `work_gallery` (
`id` bigint UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`work_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '关联的作品ID',
`image_url` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '图片URL',
`sort_order` int UNSIGNED NULL DEFAULT 0 COMMENT '排序顺序,数值越小越靠前',
`description` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '图片描述',
2026-01-16 13:38:52 +08:00
`deleted_at` bigint NOT NULL DEFAULT 0,
`created_at` bigint NOT NULL DEFAULT 0,
2026-01-15 13:51:44 +08:00
PRIMARY KEY (`id`) USING BTREE,
INDEX `idx_work_id`(`work_id` ASC) USING BTREE,
2026-01-16 17:03:34 +08:00
INDEX `idx_sort_order`(`sort_order` ASC) USING BTREE
2026-06-24 17:06:22 +08:00
) ENGINE = InnoDB AUTO_INCREMENT = 30 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '作品图库表' ROW_FORMAT = DYNAMIC;
2026-01-15 13:51:44 +08:00
-- ----------------------------
-- Table structure for work_tech_stack
-- ----------------------------
DROP TABLE IF EXISTS `work_tech_stack`;
CREATE TABLE `work_tech_stack` (
`id` bigint UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`work_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '关联的作品ID',
`category` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '技术分类(如:前端、后端、数据库等)',
`item` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '具体技术项Vue 3、Golang、MySQL等',
2026-01-16 13:38:52 +08:00
`deleted_at` bigint NOT NULL DEFAULT 0,
`created_at` bigint NOT NULL DEFAULT 0,
2026-01-15 13:51:44 +08:00
PRIMARY KEY (`id`) USING BTREE,
INDEX `idx_work_id`(`work_id` ASC) USING BTREE,
2026-01-16 17:03:34 +08:00
INDEX `idx_category`(`category` ASC) USING BTREE
2026-06-24 17:06:22 +08:00
) ENGINE = InnoDB AUTO_INCREMENT = 28 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '作品技术栈表' ROW_FORMAT = DYNAMIC;
2026-01-15 13:51:44 +08:00
-- ----------------------------
-- Table structure for works
-- ----------------------------
DROP TABLE IF EXISTS `works`;
CREATE TABLE `works` (
`id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '作品唯一标识',
`title` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '作品标题',
`category` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '作品分类',
`year` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '创作年份',
`hero_img` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '作品主图URL',
`description` text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '作品详细描述',
2026-01-19 20:21:09 +08:00
`links` text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL COMMENT '作品链接JSON格式',
2026-01-15 13:51:44 +08:00
`is_featured` tinyint(1) NULL DEFAULT 0 COMMENT '是否为精选作品01',
2026-01-16 13:01:21 +08:00
`deleted_at` bigint NOT NULL DEFAULT 0,
2026-01-16 13:38:52 +08:00
`created_at` bigint NOT NULL DEFAULT 0,
`updated_at` bigint NOT NULL DEFAULT 0,
2026-01-15 13:51:44 +08:00
PRIMARY KEY (`id`) USING BTREE,
INDEX `idx_category`(`category` ASC) USING BTREE COMMENT '按分类查询索引',
INDEX `idx_year`(`year` ASC) USING BTREE COMMENT '按年份查询索引',
INDEX `idx_is_featured`(`is_featured` ASC) USING BTREE COMMENT '按精选状态查询索引'
2026-06-24 17:06:22 +08:00
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '作品表' ROW_FORMAT = DYNAMIC;
2026-01-15 13:51:44 +08:00
2026-06-25 16:57:06 +08:00
-- ----------------------------
-- Table structure for post_snippets
-- ----------------------------
DROP TABLE IF EXISTS `post_snippets`;
CREATE TABLE `post_snippets` (
`post_id` int UNSIGNED NOT NULL COMMENT '文章ID',
`snippet_id` bigint UNSIGNED NOT NULL COMMENT '代码片段ID',
`sort_order` int UNSIGNED NOT NULL DEFAULT 0 COMMENT '排序(越小越靠前)',
`created_at` bigint NOT NULL DEFAULT 0 COMMENT '创建时间Unix秒',
PRIMARY KEY (`post_id`, `snippet_id`) USING BTREE,
INDEX `idx_snippet_id`(`snippet_id` ASC) USING BTREE,
INDEX `idx_sort_order`(`sort_order` ASC) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '文章代码片段关联表' ROW_FORMAT = DYNAMIC;
2026-01-15 15:37:34 +08:00
SET FOREIGN_KEY_CHECKS = 1;