# 爱鉴花项目详细设计文档 ## 1. 系统架构 爱鉴花项目采用前后端分离的架构,包含以下主要组件: 1. 微信小程序 (uni-app) - 前端用户界面 2. Node.js后端服务 - 提供API接口 3. Vue3后台管理系统 - 管理界面 4. HTML5 Bootstrap官网 - 公司展示 5. 数据库 - 存储用户、商品、订单等数据 6. AI识别服务 - 植物识别 ## 2. 模块设计 ### 2.1 微信小程序 (uni-app) - 首页:展示推荐内容和拍照入口 - 识别结果页:显示识别结果和植物信息 - 商城:展示花卉商品 - 配送:下单和配送信息 - 工具:园艺工具 - 个人中心:用户信息和订单管理 ### 2.2 后端接口 (Node.js) - 植物识别接口:接收图片,调用AI服务,返回识别结果 - 用户管理接口:注册、登录、用户信息管理 - 商品管理接口:商品增删改查 - 订单管理接口:订单创建、查询、状态更新 - 支付接口:处理支付请求 ### 2.3 后台管理系统 (Vue3) - 用户管理模块:查看和管理用户 - 商品管理模块:添加和管理商品 - 订单管理模块:查看和处理订单 - 数据统计模块:展示业务数据 ### 2.4 官方网站 (HTML5 Bootstrap) - 首页:公司介绍和产品展示 - 关于我们:公司信息 - 联系我们:联系方式 ## 3. 数据流程 1. 用户在小程序拍照上传图片 2. 小程序调用后端植物识别接口 3. 后端服务调用AI识别服务 4. AI服务返回识别结果 5. 后端服务将结果返回给小程序 6. 用户查看识别结果及相关信息 7. 用户可在商城下单购买 8. 订单信息存储在数据库中 9. 后台管理系统可查看和处理订单 ## 4. 数据库设计 ### 4.1 核心数据表 - **用户表 (users)**: 用户ID、用户名、密码哈希、手机号、邮箱、头像、注册时间、最后登录时间、状态 - **商品表 (products)**: 商品ID、商品名称、分类ID、价格、库存、图片、描述、状态、创建时间 - **商品分类表 (categories)**: 分类ID、分类名称、父分类ID、排序、状态 - **订单表 (orders)**: 订单ID、用户ID、订单金额、支付状态、配送状态、收货地址、创建时间 - **订单商品表 (order_items)**: 订单项ID、订单ID、商品ID、数量、单价 - **识别记录表 (identifications)**: 记录ID、用户ID、图片URL、识别结果、置信度、识别时间 - **收货地址表 (addresses)**: 地址ID、用户ID、收货人、手机号、详细地址、是否默认 ### 4.2 数据库技术选型 - **主数据库**: MySQL 5.7+,支持事务和复杂查询 - **缓存数据库**: Redis,用于会话管理、热点数据缓存 - **字符编码**: UTF8MB4,支持emoji表情 - **连接池**: 最大连接数20,最小连接数5,超时时间60秒 ### 4.3 索引设计 - 用户表:手机号唯一索引、邮箱唯一索引 - 商品表:分类ID索引、状态索引 - 订单表:用户ID索引、创建时间索引 - 识别记录表:用户ID索引、识别时间索引