/* Navicat Premium Dump SQL Source Server : 开发环境-本地 Source Server Type : MySQL Source Server Version : 80408 (8.4.8) Source Host : localhost:3306 Source Schema : nl_blog Target Server Type : MySQL Target Server Version : 80408 (8.4.8) File Encoding : 65001 Date: 24/06/2026 16:52:32 */ SET NAMES utf8mb4; SET FOREIGN_KEY_CHECKS = 0; -- ---------------------------- -- 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', `experiences` text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL COMMENT 'JSON string of experience list', `is_primary` tinyint(1) NOT NULL DEFAULT 0 COMMENT '是否主展示资料(0否 1是)', `created_at` bigint NOT NULL DEFAULT 0, `updated_at` bigint NOT NULL DEFAULT 0, `deleted_at` bigint NOT NULL DEFAULT 0, PRIMARY KEY (`id`) USING BTREE ) ENGINE = InnoDB AUTO_INCREMENT = 4 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '关于页个人资料表' ROW_FORMAT = DYNAMIC; -- ---------------------------- -- 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 '响应时间(毫秒)', `region` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT 'IP归属地', `deleted_at` bigint NOT NULL DEFAULT 0, `created_at` bigint NOT NULL DEFAULT 0, PRIMARY KEY (`id`) USING BTREE, INDEX `idx_path`(`path` ASC) USING BTREE COMMENT '按访问路径查询索引', INDEX `idx_status_code`(`status_code` ASC) USING BTREE COMMENT '按状态码查询索引' ) ENGINE = InnoDB AUTO_INCREMENT = 27003 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '访问日志表' ROW_FORMAT = DYNAMIC; -- ---------------------------- -- 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 ) ENGINE = InnoDB AUTO_INCREMENT = 2 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '附件分类表' ROW_FORMAT = DYNAMIC; -- ---------------------------- -- 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 ) ENGINE = InnoDB AUTO_INCREMENT = 76 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '附件表' ROW_FORMAT = DYNAMIC; -- ---------------------------- -- 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 ) ENGINE = InnoDB AUTO_INCREMENT = 7 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '文章分类表' ROW_FORMAT = DYNAMIC; -- ---------------------------- -- 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 ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '专栏文章关联表' ROW_FORMAT = DYNAMIC; -- ---------------------------- -- 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 ) ENGINE = InnoDB AUTO_INCREMENT = 4 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '专栏表' ROW_FORMAT = DYNAMIC; -- ---------------------------- -- 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 '排序', `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_suffix`(`suffix` ASC) USING BTREE ) ENGINE = InnoDB AUTO_INCREMENT = 15 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '邮箱后缀配置表' ROW_FORMAT = DYNAMIC; -- ---------------------------- -- 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-已联系', `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 ) ENGINE = InnoDB AUTO_INCREMENT = 2 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '合作咨询表' ROW_FORMAT = DYNAMIC; -- ---------------------------- -- 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地址', `region` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT 'IP归属地', `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方法', `action` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '操作描述', `params` text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL COMMENT '请求参数', `status` int NOT NULL COMMENT '响应状态码', `duration` int NOT NULL COMMENT '响应时间(毫秒)', `deleted_at` bigint NOT NULL DEFAULT 0, `created_at` bigint NOT NULL DEFAULT 0, PRIMARY KEY (`id`) USING BTREE, 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; -- ---------------------------- -- 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 '访问域名', `oss_access_key_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '阿里云 AccessKeyId(AES加密)', `oss_access_key_secret` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '阿里云 AccessKeySecret(AES加密)', `oss_endpoint` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '阿里云 Endpoint', `oss_bucket` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '阿里云 Bucket', `oss_domain` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '阿里云自定义域名', `qcloud_secret_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '腾讯云 SecretId(AES加密)', `qcloud_secret_key` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '腾讯云 SecretKey(AES加密)', `qcloud_region` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '腾讯云 Region', `qcloud_bucket` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '腾讯云 Bucket', `qcloud_domain` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '腾讯云自定义域名', `qiniu_access_key` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '七牛 AccessKey(AES加密)', `qiniu_secret_key` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '七牛 SecretKey(AES加密)', `qiniu_bucket` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '七牛 Bucket', `qiniu_region` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '七牛 Region', `qiniu_domain` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' 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 ) ENGINE = InnoDB AUTO_INCREMENT = 5 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = 'OSS配置表' ROW_FORMAT = DYNAMIC; -- ---------------------------- -- 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 '排序权重', `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 ) ENGINE = InnoDB AUTO_INCREMENT = 6 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '合作伙伴表' ROW_FORMAT = DYNAMIC; -- ---------------------------- -- 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 '操作名称', `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 `unique_resource_action`(`resource` ASC, `action` ASC) USING BTREE ) ENGINE = InnoDB AUTO_INCREMENT = 31 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '权限表' ROW_FORMAT = DYNAMIC; -- ---------------------------- -- 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', `column_id` int UNSIGNED NULL DEFAULT NULL COMMENT '专栏ID快照', `tag_ids` json NULL COMMENT '标签ID快照', `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 ) ENGINE = InnoDB AUTO_INCREMENT = 60 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '文章历史记录表' ROW_FORMAT = DYNAMIC; -- ---------------------------- -- Table structure for post_tags -- ---------------------------- DROP TABLE IF EXISTS `post_tags`; CREATE TABLE `post_tags` ( `tag_id` bigint UNSIGNED NOT NULL COMMENT '关联的标签ID', `post_id` int UNSIGNED NOT NULL COMMENT '关联的文章ID', `created_at` bigint NOT NULL DEFAULT 0, PRIMARY KEY (`post_id`, `tag_id`) USING BTREE, INDEX `idx_tag_id`(`tag_id` ASC) USING BTREE ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '文章标签关联表' ROW_FORMAT = DYNAMIC; -- ---------------------------- -- Table structure for posts -- ---------------------------- DROP TABLE IF EXISTS `posts`; CREATE TABLE `posts` ( `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备份', `title` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '文章标题', `category_id` int UNSIGNED NOT NULL DEFAULT 0 COMMENT '文章分类ID', `column_id` int UNSIGNED NULL DEFAULT NULL COMMENT '专栏ID(可选)', `excerpt` text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL COMMENT '文章摘要', `content` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '文章内容', `read_count` int UNSIGNED NOT NULL DEFAULT 0 COMMENT '阅读量', `is_published` tinyint(1) NOT NULL DEFAULT 1 COMMENT '是否已发布(0:草稿,1:已发布)', `user_id` int UNSIGNED NOT NULL DEFAULT 0 COMMENT '创建者用户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 COMMENT '按分类查询索引', INDEX `idx_column_id`(`column_id` ASC) USING BTREE COMMENT '按专栏查询索引', INDEX `idx_is_published`(`is_published` ASC) USING BTREE COMMENT '按发布状态查询索引', INDEX `idx_user_id`(`user_id` ASC) USING BTREE, INDEX `idx_original_id`(`original_id` ASC) USING BTREE, FULLTEXT INDEX `idx_title_content`(`title`, `content`) COMMENT '标题和内容全文索引,用于搜索' ) ENGINE = InnoDB AUTO_INCREMENT = 36 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '博客文章表(新结构)' ROW_FORMAT = DYNAMIC; -- ---------------------------- -- 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, INDEX `role_permissions_ibfk_2`(`permission_id` ASC) USING BTREE ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '角色权限关联表' ROW_FORMAT = DYNAMIC; -- ---------------------------- -- 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 '角色描述', `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 `name`(`name` ASC) USING BTREE ) ENGINE = InnoDB AUTO_INCREMENT = 4 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '角色表' ROW_FORMAT = DYNAMIC; -- ---------------------------- -- 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 ) ENGINE = InnoDB AUTO_INCREMENT = 25 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '搜索记录表' ROW_FORMAT = DYNAMIC; -- ---------------------------- -- 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 '配置项描述', `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 `key_name`(`key_name` ASC) USING BTREE, INDEX `idx_key_name`(`key_name` ASC) USING BTREE COMMENT '按键名查询索引' ) 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` ( `id` bigint UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '主键ID', `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; -- ---------------------------- -- Table structure for snippets -- ---------------------------- DROP TABLE IF EXISTS `snippets`; CREATE TABLE `snippets` ( `id` bigint UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '代码片段ID', `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等)', `code_type_id` bigint UNSIGNED NULL DEFAULT NULL COMMENT '代码类型ID', `description` text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL COMMENT '代码片段描述', `view_count` int UNSIGNED 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_type`(`type` ASC) USING BTREE COMMENT '按代码类型查询索引', INDEX `idx_view_count`(`view_count` ASC) USING BTREE COMMENT '按查看次数查询索引' ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '代码片段表' ROW_FORMAT = DYNAMIC; -- ---------------------------- -- 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', `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 `name`(`name` ASC) USING BTREE, UNIQUE INDEX `slug`(`slug` ASC) USING BTREE, INDEX `idx_slug`(`slug` ASC) USING BTREE COMMENT '按别名查询索引' ) ENGINE = InnoDB AUTO_INCREMENT = 15 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '标签表' ROW_FORMAT = DYNAMIC; -- ---------------------------- -- 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 '排序权重', `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 ) ENGINE = InnoDB AUTO_INCREMENT = 7 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '客户评价表' ROW_FORMAT = DYNAMIC; -- ---------------------------- -- 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', `deleted_at` bigint NOT NULL DEFAULT 0, `access_time` bigint NOT NULL DEFAULT 0, PRIMARY KEY (`id`) USING BTREE, INDEX `idx_user_id`(`user_id` ASC) USING BTREE, 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; -- ---------------------------- -- 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 '邮箱地址', `avatar` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '头像URL', `password_hash` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '密码哈希值', `role_id` bigint UNSIGNED NULL DEFAULT NULL COMMENT '角色ID', `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:激活)', `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 `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 '按角色查询索引', INDEX `users_ibfk_1`(`role_id` ASC) USING BTREE ) ENGINE = InnoDB AUTO_INCREMENT = 6 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '用户表' ROW_FORMAT = DYNAMIC; -- ---------------------------- -- 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 '图片描述', `deleted_at` bigint NOT NULL DEFAULT 0, `created_at` bigint NOT NULL DEFAULT 0, PRIMARY KEY (`id`) USING BTREE, INDEX `idx_work_id`(`work_id` ASC) USING BTREE, INDEX `idx_sort_order`(`sort_order` ASC) USING BTREE ) ENGINE = InnoDB AUTO_INCREMENT = 30 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '作品图库表' ROW_FORMAT = DYNAMIC; -- ---------------------------- -- 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等)', `deleted_at` bigint NOT NULL DEFAULT 0, `created_at` bigint NOT NULL DEFAULT 0, PRIMARY KEY (`id`) USING BTREE, INDEX `idx_work_id`(`work_id` ASC) USING BTREE, INDEX `idx_category`(`category` ASC) USING BTREE ) ENGINE = InnoDB AUTO_INCREMENT = 28 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '作品技术栈表' ROW_FORMAT = DYNAMIC; -- ---------------------------- -- 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', `hero_video` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '演示视频URL', `video_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '关联视频库ID', `description` text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '作品详细描述', `links` text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL COMMENT '作品链接(JSON格式)', `is_featured` tinyint(1) NULL DEFAULT 0 COMMENT '是否为精选作品(0:否,1:是)', `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`(`category` ASC) USING BTREE COMMENT '按分类查询索引', INDEX `idx_year`(`year` ASC) USING BTREE COMMENT '按年份查询索引', INDEX `idx_is_featured`(`is_featured` ASC) USING BTREE COMMENT '按精选状态查询索引' ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '作品表' ROW_FORMAT = DYNAMIC; -- ---------------------------- -- 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; -- ---------------------------- -- Table structure for video_categories -- ---------------------------- DROP TABLE IF EXISTS `video_categories`; CREATE TABLE `video_categories` ( `id` int UNSIGNED NOT NULL AUTO_INCREMENT, `name` varchar(100) NOT NULL, `slug` varchar(100) NOT NULL, `description` text NULL, `sort_order` int UNSIGNED NOT NULL DEFAULT 0, `deleted_at` bigint NOT NULL DEFAULT 0, `created_at` bigint NOT NULL DEFAULT 0, `updated_at` bigint NOT NULL DEFAULT 0, PRIMARY KEY (`id`), UNIQUE INDEX `idx_slug`(`slug`) ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '视频分类表'; -- ---------------------------- -- Table structure for video_albums -- ---------------------------- DROP TABLE IF EXISTS `video_albums`; CREATE TABLE `video_albums` ( `id` int UNSIGNED NOT NULL AUTO_INCREMENT, `name` varchar(200) NOT NULL, `description` text NULL, `cover` varchar(500) NULL, `category_id` int UNSIGNED NOT NULL DEFAULT 0, `is_active` tinyint(1) NOT NULL DEFAULT 1, `sort_order` int UNSIGNED NOT NULL DEFAULT 0, `deleted_at` bigint NOT NULL DEFAULT 0, `created_at` bigint NOT NULL DEFAULT 0, `updated_at` bigint NOT NULL DEFAULT 0, PRIMARY KEY (`id`), INDEX `idx_category_id`(`category_id`) ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '视频专辑表'; -- ---------------------------- -- Table structure for videos -- ---------------------------- DROP TABLE IF EXISTS `videos`; CREATE TABLE `videos` ( `id` varchar(50) NOT NULL, `title` varchar(200) NOT NULL, `description` text NULL, `video_url` varchar(500) NOT NULL, `cover` varchar(500) NULL, `poster` varchar(500) NULL, `category_id` int UNSIGNED NOT NULL DEFAULT 0, `duration` int NOT NULL DEFAULT 0, `is_published` tinyint(1) NOT NULL DEFAULT 1, `deleted_at` bigint NOT NULL DEFAULT 0, `created_at` bigint NOT NULL DEFAULT 0, `updated_at` bigint NOT NULL DEFAULT 0, PRIMARY KEY (`id`), INDEX `idx_category_id`(`category_id`) ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '视频表'; -- ---------------------------- -- Table structure for album_videos -- ---------------------------- DROP TABLE IF EXISTS `album_videos`; CREATE TABLE `album_videos` ( `album_id` int UNSIGNED NOT NULL, `video_id` varchar(50) NOT NULL, `sort_order` int UNSIGNED NOT NULL DEFAULT 0, `created_at` bigint NOT NULL DEFAULT 0, PRIMARY KEY (`album_id`, `video_id`), INDEX `idx_video_id`(`video_id`) ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '专辑视频关联表'; SET FOREIGN_KEY_CHECKS = 1;