软件设计描述
第三组证件照数据库文件
https://159.54.172.14:8888/down/MQ6IF6ZW7JLp.sql
一、数据库设计步骤详解
1. 数据库需求分析
基于项目文档,需满足以下核心数据需求:
- 用户数据:存储微信一键登录的用户ID(openid)、昵称、头像URL及账号状态(正常/禁止登录),需保证用户信息安全。
- 照片数据:记录用户上传的原始照片路径(
o_img)、处理后的照片路径(n_img)、文件大小及生成时间,支持按规格模板自动裁剪与美化。 - 规格模板数据:预设200+种证件规格参数(如身份证35mm×45mm),包含像素尺寸(
width_px/height_px)、物理尺寸(width_mm/height_mm)、分辨率(dpi)等属性,并支持用户自定义尺寸(custom表)。 - 操作日志数据:追踪用户行为记录(生成证件照、换背景、下载等),用于分析用户偏好与系统优化。
需满足高并发读写、快速检索规格模板、数据加密存储等性能与安全需求。
2. 概念结构设计(E-R模型)
根据文档中的E-R图框架,定义核心实体及关系:
- 用户(User):属性包括用户ID(主键)、openid、昵称、头像URL、创建时间。
- 证件照(Photo):属性包括照片ID(主键)、用户ID(外键)、规格名称、原图路径、处理后路径、生成时间。
- 规格模板(Item):属性包括模板ID(主键)、名称(如“护照35mm×45mm”)、宽高比、分辨率、所属分类(常用寸照/签证/证件)。
- 用户自定义尺寸(Custom):记录用户自定义的宽高参数,关联用户ID与模板ID(多对多关系)。
- 操作日志(PhotoRecord):记录用户行为类型(生成/下载/编辑)、操作时间及关联用户ID。
实体间通过外键约束(如User.Photo.user_id)确保数据一致性。
3. 逻辑结构设计(关系模型)
将E-R模型转化为表结构:
| 表名 | 字段名 | 说明 |
|---|---|---|
| users | id (PK) | 用户ID |
| openid | 微信openid | |
| nickname | 昵称 | |
| avatar_url | 头像URL | |
| status | 账号状态(正常/禁止登录) | |
| create_time | 创建时间 | |
| photos | id (PK) | 照片ID |
| user_id (FK) | 关联用户ID | |
| name | 规格名称 | |
| o_img | 原图路径 | |
| n_img | 处理后路径 | |
| size | 文件大小 | |
| create_time | 生成时间 | |
| items | id (PK) | 模板ID |
| name | 模板名称 | |
| width_px | 宽度(像素) | |
| height_px | 高度(像素) | |
| width_mm | 宽度(毫米) | |
| height_mm | 高度(毫米) | |
| dpi | 分辨率 | |
| category | 所属分类 | |
| custom | id (PK) | 自定义尺寸ID |
| user_id (FK) | 关联用户ID | |
| width_px | 宽度(像素) | |
| height_px | 高度(像素) | |
| width_mm | 宽度(毫米) | |
| height_mm | 高度(毫米) | |
| create_time | 创建时间 | |
| photo_records | id (PK) | 日志ID |
| user_id (FK) | 关联用户ID | |
| type | 操作类型(生成/下载/编辑) | |
| name | 操作名称 | |
| create_time | 操作时间 |
通过索引优化高频查询(如photos.user_id、items.category),采用范式化设计减少冗余字段。
4. 物理结构设计
结合性能与安全需求:
- 存储优化:照片文件采用对象存储(如腾讯云COS),数据库仅保存文件路径(
o_img/n_img)。 - 索引策略:对
photos.user_id建立B+树索引,加速用户照片检索;对items.name建立哈希索引,提升规格搜索效率。 - 安全机制:用户敏感字段(如
openid)使用AES加密存储,定期备份至异地灾备中心。 - 扩展性设计:通过水平分表策略(按
user_id哈希)支持千万级数据量,预留模板参数动态更新接口。 - 参数配置表:使用
web_glow表存储美颜参数(亮度、对比度等),支持后台灵活调整算法强度。
二、用户界面设计策略
1. 用户特性与功能任务分析
针对目用户差异化需求:
- 求职者/学生:高频次制作标准化证件照,需突出“一键合规”功能,提供官方尺寸自动校验提醒(如护照尺寸不符合时弹窗提示)。
- 企业用户:批量处理需求突出,设计“批量上传+模板同步应用”功能,支持一次操作生成百张同规格证件照。
- 普通用户:操作容忍度低,采用极简流程(拍摄→AI引导→自动裁剪),隐藏复杂参数(如
dpi设置默认值300)。
核心任务包括拍摄引导、规格选择、美颜调整、结果分,需适配微信“即用即走”特性。
2. 界面类型与交互设计
采用 渐进式单页应用(SPA) 架构:
- 拍摄界面:全屏摄像头预览叠加AR引导框(人脸位置提示),底部悬浮“拍摄按钮+切换前后置摄像头”控件,长按触发拍摄教程视频。
- 编辑界面:左侧Canvas实时渲染,右侧垂直布局工具面板(美颜/背景替换/调参),采用拖拽式参数滑块(亮度、对比度)。
- 模板选择界面:分类导航栏(常用寸照/各类签证/证件)+搜索框,每项模板配预览图与官方说明标签(如“护照35mm×45mm”)。
- 社交裂变组件:在结果页嵌入“分享给好友领模板”按钮,触发微信原生分享面板,好友通过链接领取专属模板。
工具原型通过Figma设计,使用WePY框架实现组件化开发。
3. 界面设计原则落实
- 合适性:针对移动端优化按钮尺寸(≥1cm²),禁用灰色不可点击状态;为视力障碍用户提供语音引导拍摄功能(TalkBack兼容)。
- 简便易操作:关键操作不超过3步(拍摄→裁剪→保存),提供“撤销/重做”快捷按钮;弱网环境下显示“压缩中...”状态提示,断网时缓存草稿至LocalStorage。
- 交互控制:手势支持双指缩放预览图,长按历史版本弹出对比浮层;关键操作(如删除照片)弹出二次确认模态框。
- 媒体组合恰当:
- 色彩:主色调采用微信绿色(
#07C160),错误提示用红色(#FF4949)。 - 图标:使用Ant Design Weapp图标库(相机图标用于拍摄入口)。
- 动效:加载状态显示微信风格菊花进度条,裁剪完成时播放0.3秒缩放动画。
- 色彩:主色调采用微信绿色(
4. 容错与无障碍设计
- 为视力障碍用户提供语音引导拍摄功能,支持TalkBack屏幕朗读。
- 在弱网环境下显示“压缩中...”状态提示,断网时缓存草稿至LocalStorage。
- 关键操作(如删除照片)弹出二次确认模态框,确保用户控制权。

浙公网安备 33010602011771号