系统架构设计
摘要
库存管理这类系统,真正难的不是把页面做出来,而是让库存数据、权限、采购流程和报表之间别互相打架。人工记账和纸质单据的问题不新鲜,慢、错、难追溯,这些坑在业务一忙起来就会放大。基于 Spring Boot 和 Vue.js 的前后端分离方案,正好适合把库存录入、出入库、采购审批和统计分析拆开处理,前端负责交互,后端集中管业务规则,数据库保证数据一致性。
这套设计里,后端用 Spring Boot 提供 RESTful API,配合 Spring Security、Redis、RabbitMQ 和工作流引擎处理权限、缓存、消息和流程流转;前端用 Vue 3 和 Element Plus 搭管理界面,ECharts 补上库存趋势图。数据库采用 MySQL,围绕商品、采购订单和用户权限三张核心表展开,字段不多,但够支撑实际业务。性能上重点放在缓存和索引,安全上则依赖 JWT、权限注解和审计日志。整体思路不复杂,重点是把库存场景里最容易出问题的环节先兜住。
数据表设计
商品信息数据表
商品信息数据表存储系统中所有商品的基本属性,包括商品名称、分类、规格、库存数量等。商品编号是该表的主键,创建时间通过函数自动获取,确保数据的完整性和可追溯性。
| 字段名 | 数据类型 | 是否为空 | 描述 |
|---|---|---|---|
| product_id | BIGINT | NOT NULL | 商品编号(主键) |
| product_name | VARCHAR(50) | NOT NULL | 商品名称 |
| category_id | INT | NOT NULL | 商品分类编号 |
| specification | VARCHAR(100) | NULL | 商品规格 |
| current_stock | INT | NOT NULL | 当前库存数量 |
| min_stock | INT | NULL | 最低库存预警值 |
| create_time | DATETIME | NOT NULL | 创建时间 |
| update_time | DATETIME | NULL | 更新时间 |
采购订单数据表
采购订单数据表记录企业采购商品的详细信息,包括供应商、采购数量、单价及订单状态等。订单编号是该表的主键,关联商品信息表和供应商信息表。
| 字段名 | 数据类型 | 是否为空 | 描述 |
|---|---|---|---|
| order_id | BIGINT | NOT NULL | 订单编号(主键) |
| product_id | BIGINT | NOT NULL | 商品编号 |
| supplier_id | INT | NOT NULL | 供应商编号 |
| purchase_quantity | INT | NOT NULL | 采购数量 |
| unit_price | DECIMAL(10,2) | NOT NULL | 商品单价 |


