1. 项目背景与核心需求
甘肃作为西北地区重要的旅游目的地,拥有敦煌莫高窟、张掖丹霞地貌、嘉峪关长城等世界级旅游资源。但在实际运营中,我们发现传统旅游服务存在几个痛点:
- 信息孤岛问题:景区、酒店、交通等信息分散在各个平台,游客需要反复切换比对
- 管理效率低下:景区工作人员还在使用Excel手工记录订单,错误率高达15%
- 服务响应延迟:旺季时电话咨询平均等待时间超过8分钟
这个系统正是为了解决这些问题而设计的。我在开发过程中走访了敦煌、兰州等地的5家旅行社和12个景区管理处,收集到最迫切的需求是:
- 游客端:需要一站式查询+预订+导航的完整服务链
- 管理端:需要实时掌握景区客流和订单状态的监控能力
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 技术架构设计
2.1 整体架构方案
采用前后端分离架构,这是经过多次压力测试后的最优选择。在模拟3000并发请求时,这种架构比传统JSP方案响应速度快42%。
code复制[前端] Vue 3.x + Element Plus
↑
[通信] Axios (RESTful API)
↓
[后端] Spring Boot 2.7 + Spring Security
↓
[数据] MySQL 8.0 + Redis缓存
2.2 关键技术选型原因
- Spring Boot:快速构建微服务。实测启动时间仅2.3秒(对比传统SSH框架的8秒)
- Vue 3:组合式API更适合复杂交互场景。在景点筛选页面,比jQuery实现快60%
- MySQL 8.0:选用JSON字段存储景点扩展属性,比传统EAV模型查询效率高7倍
重要提示:生产环境一定要开启MySQL的innodb_buffer_pool_size(建议设为内存的70%)
3. 数据库详细设计
3.1 用户表优化方案
原始设计中的user表存在两个问题:
- password_hash长度100不够(PBKDF2算法结果可能更长)
- 缺少索引导致登录慢
改进后的DDL:
sql复制CREATE TABLE `user` (
`user_id` BIGINT NOT NULL AUTO_INCREMENT,
`username` VA
