Files
Neo-ZQYY/docs/database/_archived/BD_manual_auth_users_avatar.md
Neo 779b2f6d52 chore: v1 整理 — 清理历史文件、DDL 合并、文档归档
- 清理 1155 个已删除的历史文件(废弃 prompt_logs、tmp、旧 ops 脚本)
- export/ 数据文件从 git 移除(已在 .gitignore)
- demo-miniprogram 从 tmp/ 移入 apps/,添加 CLAUDE.md 注解
- DDL 合并:完整 schema 定义填充到 db/*/schemas/(从 docs/database/ddl/ 复制)
- 39 个 v1 迁移脚本归档到 db/_archived/migrations_v1_merged/
- 4 个迁移变更类 BD_Manual 文档归档到 docs/database/_archived/
- .gitignore 补充 .vite/ 和 apps/*.zip
- settings.json 添加 effortLevel 默认配置
- scripts/ops/ 新增运维脚本入库

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-06 00:39:27 +08:00

1.6 KiB
Raw Blame History

BD 手册auth.users.avatar_url 字段

概述

auth.users 表新增 avatar_url 字段,存储用户头像的相对路径。

字段定义

字段 类型 约束 说明
avatar_url VARCHAR(500) NULL 头像相对路径,格式 avatars/{user_id}.jpg

数据流

  1. 小程序端通过 <button open-type="chooseAvatar"> 获取微信头像临时路径
  2. 通过 wx.uploadFile 上传到 POST /api/xcx/avatar/upload
  3. 后端保存文件到 AVATAR_EXPORT_PATH/{user_id}.jpg(覆盖式,幂等)
  4. 数据库 avatar_url 更新为 avatars/{user_id}.jpg(相对路径)
  5. 小程序通过 GET /api/xcx/avatar/{user_id} 获取头像文件

关联接口

接口 方法 说明
/api/xcx/avatar/upload POST 上传头像,更新 avatar_url
/api/xcx/avatar/{user_id} GET 获取头像文件FileResponse
/api/xcx/me GET 返回 avatar_url 字段

设计决策

  • 审核表 auth.user_applications 不冗余 avatar_url,通过 JOIN auth.users 获取(头像可能更新)
  • 文件命名按 user_id,覆盖式保存(幂等,无历史版本)
  • 文件大小限制 2MB空文件拒绝

迁移脚本

db/zqyy_app/migrations/20260324_add_avatar_url_to_users.sql

环境变量

AVATAR_EXPORT_PATH — 头像文件存储目录,缺失时后端报 500 错误

回滚

ALTER TABLE auth.users DROP COLUMN IF EXISTS avatar_url;

验证

SELECT id, avatar_url FROM auth.users WHERE avatar_url IS NOT NULL LIMIT 5;