You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
205 lines
4.7 KiB
205 lines
4.7 KiB
# 系统架构设计文档
|
|
|
|
## 📋 文档信息
|
|
|
|
- **文档版本**: v1.0.0
|
|
- **创建日期**: 2024年
|
|
- **最后更新**: 2024年
|
|
- **文档状态**: 草稿
|
|
- **维护人员**: 架构师
|
|
|
|
## 🏗️ 系统架构概述
|
|
|
|
### 整体架构
|
|
Getinge Web 采用前后端分离的架构模式,前端使用 Vue.js 框架,后端提供 RESTful API 接口。
|
|
|
|
```
|
|
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
|
|
│ 前端应用 │ │ 后端API │ │ 数据库 │
|
|
│ (Vue.js) │◄──►│ (Node.js) │◄──►│ (MySQL) │
|
|
└─────────────────┘ └─────────────────┘ └─────────────────┘
|
|
```
|
|
|
|
## 🎯 技术架构
|
|
|
|
### 前端技术栈
|
|
- **框架**: Vue.js 2.6.10
|
|
- **UI组件库**: Element UI 2.15.13 + View Design 4.7.0
|
|
- **状态管理**: Vuex 3.1.0
|
|
- **路由管理**: Vue Router 3.0.6
|
|
- **HTTP客户端**: Axios 0.18.1
|
|
- **构建工具**: Vue CLI 4.x + Webpack
|
|
|
|
### 后端技术栈
|
|
- **运行环境**: Node.js
|
|
- **Web框架**: Express.js
|
|
- **数据库**: MySQL
|
|
- **认证**: JWT Token
|
|
- **API文档**: Swagger
|
|
|
|
## 🏛️ 系统模块架构
|
|
|
|
### 1. 核心模块
|
|
```
|
|
src/
|
|
├── core/ # 核心模块
|
|
│ ├── auth/ # 认证授权
|
|
│ ├── permission/ # 权限控制
|
|
│ ├── router/ # 路由管理
|
|
│ └── store/ # 状态管理
|
|
├── modules/ # 业务模块
|
|
│ ├── system/ # 系统管理
|
|
│ ├── course/ # 课程管理
|
|
│ ├── student/ # 学生管理
|
|
│ └── book/ # 预约管理
|
|
└── shared/ # 共享模块
|
|
├── components/ # 公共组件
|
|
├── utils/ # 工具函数
|
|
└── styles/ # 样式文件
|
|
```
|
|
|
|
### 2. 权限架构
|
|
```
|
|
用户 (User)
|
|
├── 角色 (Role)
|
|
│ ├── 权限 (Permission)
|
|
│ │ ├── 菜单权限
|
|
│ │ ├── 操作权限
|
|
│ │ └── 数据权限
|
|
│ └── 部门 (Department)
|
|
└── 个人信息
|
|
```
|
|
|
|
## 🔐 安全架构
|
|
|
|
### 认证机制
|
|
1. **登录流程**
|
|
- 用户输入用户名密码
|
|
- 后端验证并生成 JWT Token
|
|
- 前端存储 Token 到 localStorage
|
|
- 后续请求携带 Token
|
|
|
|
2. **权限验证**
|
|
- 路由级别的菜单权限
|
|
- 组件级别的操作权限
|
|
- API 接口级别的数据权限
|
|
|
|
### 数据安全
|
|
- 敏感数据加密存储
|
|
- API 接口参数验证
|
|
- SQL 注入防护
|
|
- XSS 攻击防护
|
|
|
|
## 📊 数据架构
|
|
|
|
### 数据模型
|
|
```
|
|
用户表 (users)
|
|
├── 基本信息
|
|
├── 认证信息
|
|
└── 关联信息
|
|
|
|
角色表 (roles)
|
|
├── 角色名称
|
|
├── 角色描述
|
|
└── 权限配置
|
|
|
|
权限表 (permissions)
|
|
├── 权限名称
|
|
├── 权限类型
|
|
└── 权限标识
|
|
|
|
业务表
|
|
├── 课程表 (courses)
|
|
├── 学生表 (students)
|
|
├── 预约表 (appointments)
|
|
└── 其他业务表
|
|
```
|
|
|
|
### 数据流
|
|
1. 前端组件触发操作
|
|
2. 调用 API 接口
|
|
3. 后端处理业务逻辑
|
|
4. 数据库 CRUD 操作
|
|
5. 返回结果给前端
|
|
6. 更新前端状态
|
|
|
|
## 🚀 性能架构
|
|
|
|
### 前端优化
|
|
- 路由懒加载
|
|
- 组件按需加载
|
|
- 图片懒加载
|
|
- 代码分割
|
|
|
|
### 后端优化
|
|
- 数据库索引优化
|
|
- 缓存策略
|
|
- 接口限流
|
|
- 负载均衡
|
|
|
|
## 🔧 部署架构
|
|
|
|
### 环境配置
|
|
```
|
|
开发环境 (Development)
|
|
├── 本地开发
|
|
├── 开发服务器
|
|
└── 测试数据库
|
|
|
|
测试环境 (Testing)
|
|
├── 测试服务器
|
|
├── 测试数据库
|
|
└── 自动化测试
|
|
|
|
生产环境 (Production)
|
|
├── 生产服务器
|
|
├── 生产数据库
|
|
├── CDN 加速
|
|
└── 监控告警
|
|
```
|
|
|
|
### 部署流程
|
|
1. 代码提交到 Git 仓库
|
|
2. 触发 CI/CD 流水线
|
|
3. 自动化测试
|
|
4. 构建打包
|
|
5. 部署到目标环境
|
|
6. 健康检查
|
|
|
|
## 📈 扩展性设计
|
|
|
|
### 水平扩展
|
|
- 前端静态资源 CDN 分发
|
|
- 后端服务集群部署
|
|
- 数据库读写分离
|
|
|
|
### 垂直扩展
|
|
- 模块化设计,支持功能扩展
|
|
- 插件化架构,支持第三方集成
|
|
- 配置化开发,支持业务定制
|
|
|
|
## 🔍 监控与日志
|
|
|
|
### 监控指标
|
|
- 系统性能指标
|
|
- 业务指标监控
|
|
- 用户行为分析
|
|
- 错误率统计
|
|
|
|
### 日志管理
|
|
- 操作日志记录
|
|
- 错误日志收集
|
|
- 性能日志分析
|
|
- 日志分级管理
|
|
|
|
## 📝 变更记录
|
|
|
|
| 版本 | 日期 | 变更内容 | 变更人 |
|
|
|------|------|----------|--------|
|
|
| v1.0.0 | 2024年 | 初始架构设计 | 架构师 |
|
|
|
|
---
|
|
|
|
*如有疑问,请联系架构师*
|