农产品直卖平台的 SpringBoot + Vue 架构与表设计
摘要
农产品直卖平台要解决的,其实就是两件事:把买卖双方尽量拉近一点,把交易链路尽量做短一点。传统流通里层层加价、信息不透明、库存和订单靠人工兜底,这些问题放到线上后,最先暴露出来的往往不是功能多不多,而是数据结构够不够稳,接口能不能撑住后续扩展。
这个项目用 SpringBoot 做后端,Vue.js 做前端,MySQL 负责数据落库,通过 RESTful API 把前后端串起来。核心功能覆盖了用户注册登录、农产品分类展示、购物车、下单支付、评价反馈,商家侧则负责商品发布和订单管理。还补了第三方支付和物流查询,目的是让用户下单后不用再跳来跳去。
数据表设计
用户信息数据表
用户信息表用来存注册用户的基本资料和账户状态。user_id 作为主键,register_time 由系统自动生成,便于后面做登录行为和账号状态管理。
| 字段名 | 数据类型 | 是否为空 | 说明 |
|---|---|---|---|
| user_id | BIGINT | NOT NULL | 用户唯一标识 |
| username | VARCHAR(50) | NOT NULL | 用户登录名 |
| password_hash | VARCHAR(100) | NOT NULL | 加密后的密码 |
| real_name | VARCHAR(30) | NULL | 用户真实姓名 |
| phone_number | VARCHAR(20) | NOT NULL | 用户手机号 |
| VARCHAR(50) | NULL | 用户邮箱 | |
| register_time | DATETIME | NOT NULL | 用户注册时间 |
| last_login_time | DATETIME | NULL | 最后一次登录时间 |
| account_status | TINYINT | NOT NULL | 账户状态(0 禁用,1 启用) |
农产品信息数据表
农产品信息表保存商家发布的商品数据。product_id 是主键,publish_time 记录发布时间,product_status 用来控制上下架。这里把库存、价格和描述都放在同一张表里,查询时直接拿得到,适合这个阶段的业务复杂度。
| 字段名 | 数据类型 | 是否为空 | 说明 |
|---|---|---|---|
| product_id | BIGINT | NOT NULL | 商品唯一标识 |
| seller_id | BIGINT | NOT NULL | 关联的商家 ID |
| product_name | VARCHAR(100) | NOT NULL |


