-- 用户表 CREATE TABLE IF NOT EXISTS `user` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT '用户ID', `username` varchar(50) NOT NULL DEFAULT '' COMMENT '用户名', `password` varchar(255) NOT NULL DEFAULT '' COMMENT '密码', `nickname` varchar(50) DEFAULT '' COMMENT '昵称', `email` varchar(100) DEFAULT '' COMMENT '邮箱', `phone` varchar(20) DEFAULT '' COMMENT '手机号', `avatar` varchar(255) DEFAULT '' COMMENT '头像', `status` tinyint(1) NOT NULL DEFAULT '1' COMMENT '状态 0:禁用 1:启用', `created_at` int(11) DEFAULT NULL COMMENT '创建时间', `updated_at` int(11) DEFAULT NULL COMMENT '更新时间', `delete_time` int(11) DEFAULT NULL COMMENT '删除时间', PRIMARY KEY (`id`), UNIQUE KEY `username` (`username`), KEY `email` (`email`), KEY `phone` (`phone`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='用户表'; -- 插入示例数据 INSERT INTO `user` (`username`, `password`, `nickname`, `email`, `status`) VALUES ('demo', '$2y$10$92IXUNpkjO0rOQ5byMi.Ye4oKoEa3Ro9llC/.og/at2.uheWG/igi', '演示用户', 'demo@example.com', 1); -- 密码为: password -- ============================================ -- note 独立模块:笔记小程序表结构 -- ============================================ -- 小程序用户表 CREATE TABLE IF NOT EXISTS `note_user` ( `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键ID', `member_id` int(11) unsigned DEFAULT NULL COMMENT '关联 tp 现有 member.userid,可为空', `openid` varchar(64) NOT NULL DEFAULT '' COMMENT '微信小程序 openid', `unionid` varchar(64) NOT NULL DEFAULT '' COMMENT '微信 unionid', `session_key` varchar(128) NOT NULL DEFAULT '' COMMENT '微信 session_key', `nickname` varchar(100) NOT NULL DEFAULT '' COMMENT '用户昵称', `avatar_url` varchar(255) NOT NULL DEFAULT '' COMMENT '头像地址', `mobile` varchar(20) NOT NULL DEFAULT '' COMMENT '手机号', `status` tinyint(1) NOT NULL DEFAULT '1' COMMENT '状态:0禁用 1正常', `last_login_ip` varchar(64) NOT NULL DEFAULT '' COMMENT '最后登录IP', `last_login_time` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '最后登录时间', `created_at` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '创建时间', `updated_at` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '更新时间', `deleted_at` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '删除时间,0表示未删除', PRIMARY KEY (`id`), UNIQUE KEY `uniq_openid` (`openid`), KEY `idx_member_id` (`member_id`), KEY `idx_status` (`status`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='note模块-小程序用户表'; -- 笔记主表 CREATE TABLE IF NOT EXISTS `note_item` ( `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '笔记ID', `note_user_id` bigint(20) unsigned NOT NULL DEFAULT '0' COMMENT 'note_user.id', `title` varchar(255) NOT NULL DEFAULT '' COMMENT '标题', `content` longtext COMMENT '用户整理后的正文', `transcript_text` longtext COMMENT '录音转写累计文本', `source_type` varchar(20) NOT NULL DEFAULT 'text' COMMENT '来源类型:text/audio/mix', `status` varchar(20) NOT NULL DEFAULT 'draft' COMMENT '状态:draft/completed/archived', `audio_duration_ms` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '录音时长(毫秒)', `summary_status` varchar(20) NOT NULL DEFAULT 'none' COMMENT 'AI总结状态:none/pending/success/failed', `last_transcript_time` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '最后一次转写更新时间', `created_at` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '创建时间', `updated_at` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '更新时间', `deleted_at` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '删除时间,0表示未删除', PRIMARY KEY (`id`), KEY `idx_note_user_id` (`note_user_id`), KEY `idx_status` (`status`), KEY `idx_summary_status` (`summary_status`), KEY `idx_created_at` (`created_at`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='note模块-笔记主表'; -- 笔记实时转写表 CREATE TABLE IF NOT EXISTS `note_transcript` ( `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键ID', `note_id` bigint(20) unsigned NOT NULL DEFAULT '0' COMMENT 'note_item.id', `segment_no` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '分片序号', `segment_text` text COMMENT '本次分片转写文本', `full_text` longtext COMMENT '当前累计完整转写文本', `is_final` tinyint(1) NOT NULL DEFAULT '0' COMMENT '是否最终片段:0否 1是', `audio_duration_ms` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '当前累计录音时长', `created_at` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '创建时间', PRIMARY KEY (`id`), KEY `idx_note_id` (`note_id`), KEY `idx_note_segment` (`note_id`, `segment_no`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='note模块-实时转写记录表'; -- AI 总结结果表 CREATE TABLE IF NOT EXISTS `note_ai_summary` ( `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键ID', `note_id` bigint(20) unsigned NOT NULL DEFAULT '0' COMMENT 'note_item.id', `summary_type` varchar(20) NOT NULL DEFAULT 'brief' COMMENT '总结类型:brief/outline/todo', `summary_text` longtext COMMENT 'AI总结正文', `todo_list` longtext COMMENT '待办列表,建议JSON字符串', `keywords` longtext COMMENT '关键词列表,建议JSON字符串', `status` varchar(20) NOT NULL DEFAULT 'pending' COMMENT '状态:pending/success/failed', `error_message` varchar(500) NOT NULL DEFAULT '' COMMENT '失败原因', `created_at` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '创建时间', `updated_at` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '更新时间', PRIMARY KEY (`id`), KEY `idx_note_id` (`note_id`), KEY `idx_status` (`status`), KEY `idx_summary_type` (`summary_type`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='note模块-AI总结结果表'; -- 笔记录音附件表 CREATE TABLE IF NOT EXISTS `note_audio` ( `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键ID', `note_id` bigint(20) unsigned NOT NULL DEFAULT '0' COMMENT 'note_item.id', `disk` varchar(30) NOT NULL DEFAULT 'public' COMMENT '存储磁盘', `file_path` varchar(255) NOT NULL DEFAULT '' COMMENT '磁盘相对路径', `file_url` varchar(500) NOT NULL DEFAULT '' COMMENT '公开访问地址', `file_size` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '文件大小', `mime_type` varchar(100) NOT NULL DEFAULT '' COMMENT '文件类型', `duration_ms` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '录音时长', `created_at` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '创建时间', `updated_at` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '更新时间', PRIMARY KEY (`id`), KEY `idx_note_id` (`note_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='note模块-录音附件表'; -- 笔记分享表 CREATE TABLE IF NOT EXISTS `note_share` ( `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键ID', `note_id` bigint(20) unsigned NOT NULL DEFAULT '0' COMMENT 'note_item.id', `note_user_id` bigint(20) unsigned NOT NULL DEFAULT '0' COMMENT 'note_user.id', `share_token` varchar(64) NOT NULL DEFAULT '' COMMENT '分享 token', `title` varchar(255) NOT NULL DEFAULT '' COMMENT '分享标题', `view_count` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '查看次数', `status` tinyint(1) NOT NULL DEFAULT '1' COMMENT '状态:0失效 1有效', `expired_at` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '过期时间,0不过期', `last_view_time` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '最后查看时间', `created_at` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '创建时间', `updated_at` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '更新时间', PRIMARY KEY (`id`), UNIQUE KEY `uniq_share_token` (`share_token`), KEY `idx_note_id` (`note_id`), KEY `idx_note_user_id` (`note_user_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='note模块-分享记录表';