软件设计

一、数据库设计步骤详解(500字)

  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), openid, nickname, avatar_url, status, create_time
    照片表(photos):id (PK), user_id (FK), name, o_img, n_img, size, create_time
    模板表(items):id (PK), name, width_px, height_px, width_mm, height_mm, dpi, category
    自定义尺寸表(custom):id (PK), user_id (FK), width_px, height_px, width_mm, height_mm, create_time
    操作日志表(photo_records):id (PK), user_id (FK), 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表存储美颜参数(亮度、对比度等),支持后台灵活调整算法强度。
    二、用户界面设计策略(500字)
  5. 用户特性与功能任务分析 针对目标用户差异化需求:
    求职者/学生:高频次制作标准化证件照,需突出“一键合规”功能,提供官方尺寸自动校验提醒(如护照尺寸不符合时弹窗提示);
    企业用户:批量处理需求突出,设计“批量上传+模板同步应用”功能,支持一次操作生成百张同规格证件照;
    普通用户:操作容忍度低,采用极简流程(拍摄→AI引导→自动裁剪),隐藏复杂参数(如dpi设置默认值300)。 核心任务包括拍摄引导、规格选择、美颜调整、结果分享,需适配微信“即用即走”特性。
  6. 界面类型与交互设计 采用渐进式单页应用(SPA)架构:
    拍摄界面:全屏摄像头预览叠加AR引导框(人脸位置提示),底部悬浮“拍摄按钮+切换前后置摄像头”控件,长按触发拍摄教程视频;
    编辑界面:左侧Canvas实时渲染,右侧垂直布局工具面板(美颜/背景替换/调参),采用拖拽式参数滑块(亮度、对比度);
    模板选择界面:分类导航栏(常用寸照/各类签证/证件)+搜索框,每项模板配预览图与官方说明标签(如“护照35mm×45mm”);
    社交裂变组件:在结果页嵌入“分享给好友领模板”按钮,触发微信原生分享面板,好友通过链接领取专属模板。 工具原型通过Figma设计,使用WePY框架实现组件化开发。
  7. 界面设计原则落实
    合适性:针对移动端优化按钮尺寸(≥1cm²),禁用灰色不可点击状态;为视力障碍用户提供语音引导拍摄功能(TalkBack兼容);
    简便易操作:关键操作不超过3步(拍摄→裁剪→保存),提供“撤销/重做”快捷按钮;弱网环境下显示“压缩中...”状态提示,断网时缓存草稿至LocalStorage;
    交互控制:手势支持双指缩放预览图,长按历史版本弹出对比浮层;关键操作(如删除照片)弹出二次确认模态框;
    媒体组合恰当:
    o色彩:主色调采用微信绿色(#07C160),错误提示用红色(#FF4949);
    o图标:使用Ant Design Weapp图标库(相机图标用于拍摄入口);
    o动效:加载状态显示微信风格菊花进度条,裁剪完成时播放0.3秒缩放动画。
  8. 容错与无障碍设计
    为视力障碍用户提供语音引导拍摄功能,支持TalkBack屏幕朗读;
    在弱网环境下显示“压缩中...”状态提示,断网时缓存草稿至LocalStorage;
    关键操作(如删除照片)弹出二次确认模态框,确保用户控制权。
posted @ 2025-05-18 00:49  望麟  阅读(38)  评论(0)    收藏  举报