软件设计描述
一、数据库设计
1、数据库需求分析
(1)核心功能需求:
用户管理:存储用户基本信息、体型数据、偏好设置;
服装管理:管理用户上传的服装信息及系统内置服装库;
搭配推荐:根据用户数据、天气、心情、场合生成搭配方案;
商城功能:商品管理、订单处理、库存跟踪;
数据关联:建立用户-服装-搭配-订单的完整链路。
(2)关键实体与关系:
用户↔ 上传/收藏服装
用户 ↔ 生成 搭配方案
搭配方案 ↔ 包含多件 服装
用户 ↔ 创建 订单
订单 ↔ 包含多个 商品
2. 概念结构设计
核心实体:
(1)用户表(User):用户ID、体型数据、地区
(2)服装表(Clothing):服装ID、类型、适用场景、季节属性
(3)搭配方案(Outfit):方案ID、推荐理由、适用天气/心情
(4)商品表(Product):商品ID、价格、库存
(5)订单表(Order):订单ID、支付状态、物流信息
3. 逻辑结构设计(关系模式)
用户表
CREATE TABLE User (
user_id INT PRIMARY KEY AUTO_INCREMENT,
username VARCHAR(255) NOT NULL,
gender ENUM('男', '女', '其他') NOT NULL,
height DECIMAL(5,2),
weight DECIMAL(5,2),
body_type ENUM('苹果型', '梨型', '沙漏型'),
region VARCHAR(255),
INDEX (region)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
服装表
CREATE TABLE Clothing (
clothing_id INT PRIMARY KEY AUTO_INCREMENT,
user_id INT NOT NULL,
category ENUM('上衣', '下装', '外套', '鞋履') NOT NULL,
color VARCHAR(50),
material VARCHAR(100),
season SET('春', '夏', '秋', '冬'),
occasion ENUM('通勤', '休闲', '宴会', '运动'),
FOREIGN KEY (user_id) REFERENCES User(user_id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
搭配方案表
CREATE TABLE Outfit (
outfit_id INT PRIMARY KEY AUTO_INCREMENT,
user_id INT NOT NULL,
weather_type ENUM('晴', '雨', '雪', '阴'),
mood ENUM('活力', '沉稳', '休闲', '优雅'),
occasion ENUM('通勤', '休闲', '宴会', '运动'),
generated_time DATETIME DEFAULT CURRENT_TIMESTAMP,
FOREIGN KEY (user_id) REFERENCES User(user_id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
搭配详情表(复合主键 + 位置约束)
CREATE TABLE Outfit_Detail (
outfit_id INT NOT NULL,
clothing_id INT NOT NULL,
position ENUM('上衣', '下装', '外套', '配饰') NOT NULL,
PRIMARY KEY (outfit_id, clothing_id),
FOREIGN KEY (outfit_id) REFERENCES Outfit(outfit_id),
FOREIGN KEY (clothing_id) REFERENCES Clothing(clothing_id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
商品表(注意分类表需另外创建)
CREATE TABLE Product (
product_id INT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(255) NOT NULL,
price DECIMAL(10,2) NOT NULL,
category_id INT,
INDEX (category_id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
订单表(使用反引号避免关键字冲突)
CREATE TABLE `Order` (
order_id INT PRIMARY KEY AUTO_INCREMENT,
user_id INT NOT NULL,
total_amount DECIMAL(10,2) NOT NULL,
status ENUM('待支付', '已发货', '已完成') DEFAULT '待支付',
FOREIGN KEY (user_id) REFERENCES User(user_id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
天气缓存表(复合主键设计)
CREATE TABLE Weather (
region VARCHAR(255) NOT NULL,
date DATE NOT NULL,
temperature INT,
`condition` ENUM('晴', '雨', '雪', '阴'), -- 使用反引号避开关键字
PRIMARY KEY (region, date)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
4. 物理结构设计
(1)关键技术选型:
a、数据库类型:
MySQL 8.0(支持JSON字段存储用户偏好)
b、存储引擎:
InnoDB(支持事务处理订单)
c、索引策略:
用户表:建立(user_id + region)联合索引
搭配方案表:对(user_id + weather_type + occasion)建立覆盖索引
商品表:对category_id建立B+树索引
d、分区方案:
订单表按order_date进行RANGE分区
服装表按user_id HASH分区
e、安全设计:
用户密码采用bcrypt加密存储
订单金额字段使用DECIMAL(10,2)精确存储
f、性能优化:
热点表(如订单)设置读写分离
搭配推荐结果缓存到Redis
(2)关键设计亮点
a、动态天气关联:
通过region字段关联用户所在地区
每日同步天气API数据到Weather表
搭配推荐时自动关联当日天气
b、个性化推荐支持:
SELECT * FROM Outfit
WHERE user_id = {current_user}
AND weather_type = {current_weather}
AND occasion = {selected_occasion}
ORDER BY generated_time DESC LIMIT 5;
c、电商扩展性设计:
商品表与服装表分离设计
通过product_type字段区分"用户上传"与"商城商品"
库存表独立设计支持秒杀场景
5、总结
该设计通过四层递进式架构:
(1)需求层:覆盖用户画像→搭配生成→商品购买全流程
(2)概念层:ER图明确核心实体关系
(3)逻辑层:范式化设计保证数据一致性
(4)物理层:索引+分区策略优化性能
特别加强了对推荐算法的数据支持(天气/体型/场景多维度关联)和电商高并发场景的扩展能力。
二、用户界面需求分析与设计
1. 用户特性分析
(1)核心用户画像:
年龄:18-35岁,注重时尚、追求个性化的年轻群体(女性为主,兼顾男性)。
行为特征:偏好便捷操作、依赖视觉化信息(如服装图片),需要快速获取搭配灵感。
技术能力:中等,需简化交互流程,避免复杂操作。
(2)特殊需求:
体型数据精准输入(如肩宽、腰围等),支持手动调整或AI拍照识别。
动态天气适配(需获取地理位置权限)。
情绪化设计(心情选择界面需轻松有趣,如表情包或色彩主题)。
2. 界面的功能任务分析
核心功能模块分解:
| 功能模块 | 任务分解与界面设计要点 |
|---|---|
| 用户数据输入 | 首次启动引导页:分步骤填写体型数据(滑动条/拍照测量) - 个人中心支持编辑/更新数据 |
| 搭配推荐 | 主界面一键生成推荐(按钮置顶) - 展示卡片式搭配方案(图片+文字说明+天气/场合标签) |
| 商城功能 | 推荐搭配下方直接跳转购买链接 - 独立商城页:分类筛选、商品瀑布流、智能搜索栏 |
| 动态因素调整 | 顶部浮动栏:实时天气图标+温度 - 心情选择弹窗(表情符号+简短描述,如“元气”“慵懒”) |
3. 用户界面类型与工具设计
(1)界面类型:
移动端响应式设计:适配iOS/Android,采用底部导航栏(首页、搭配记录、商城、个人中心)。
交互主导型界面:以手势操作为主(滑动切换搭配方案、长按收藏服装)。
(2)设计工具与原型:
使用 Figma 制作高保真原型,重点设计以下页面流程:
主页流程:天气/心情选择 → 一键生成 → 搭配卡片展示 → 点击跳转购买。
商城流程:搭配推荐商品聚合页 → 商品详情页 → 购物车结算。
4. 用户界面设计原则应用
原则1:合适性
根据用户场景设计动态界面:
雨天自动推荐防水材质服装,并高亮商城相关商品。
“职场”场合推荐时,弱化休闲元素,突出正式感。
原则2:简便易操作性
一键生成搭配:减少用户决策步骤,默认使用最近数据生成推荐。
视觉化输入:体型数据支持拖动3D人体模型调整(替代手动输入数字)。
原则3:交互控制
提供“不喜欢”按钮,实时刷新新方案;
搭配卡片支持左滑收藏、右滑删除。
原则4:媒体组合恰当
图片为主(服装高清图)、文字为辅(搭配理由标签,如“宽松针织衫适配今日凉爽天气”);
微动效提升体验(如天气图标根据实际气候动态变化)。
5. 最终界面效果示例
(1)主页:
顶部栏:地理位置+天气图标+温度,右侧心情表情入口(😊/😌/🔥)。
中部:3张横向滑动搭配卡片(图片占70%,文字标签说明适配理由)。
底部:固定按钮“今日推荐”,点击后基于实时数据生成方案。
(2)商城页:
瀑布流展示商品,标签过滤(价格/风格/材质);
搭配推荐商品显示“已匹配您的体型”提示,增强购买动机。
(3)个人中心:
可视化体型数据图表(如肩腰臀比例图);
历史搭配存档(按场合/心情分类可检索)。
6. 设计验证:
通过A/B测试验证“一键生成”按钮的点击率;
用户访谈收集对3D体型模型的易用性反馈,迭代拍照识别功能。
通过以上设计,每美搭可兼顾功能实用性与用户体验,实现从个性化推荐到消费闭环的高效转化。

浙公网安备 33010602011771号