refactor(backend): 更新数据库配置并迁移至MySQL,优化文档和技术栈描述
This commit is contained in:
264
architecture.md
Normal file
264
architecture.md
Normal file
@@ -0,0 +1,264 @@
|
||||
# 🏗️ 系统架构文档
|
||||
|
||||
## 📋 项目概述
|
||||
杰邦科项目是一个综合性的管理系统,包含后台管理、微信小程序和官网三个主要模块。
|
||||
|
||||
## 🎯 技术栈
|
||||
|
||||
### 后端技术栈
|
||||
- **运行时**: Node.js + Express.js
|
||||
- **数据库**: MySQL 8.0
|
||||
- **ORM**: Sequelize
|
||||
- **认证**: JWT + bcrypt
|
||||
- **缓存**: Redis (可选)
|
||||
- **消息队列**: RabbitMQ (可选)
|
||||
|
||||
### 前端技术栈
|
||||
- **后台管理系统**: Vue 3 + Element Plus
|
||||
- **微信小程序**: 原生小程序 + Vant Weapp
|
||||
- **官方网站**: Vue 3 + Vue Router
|
||||
|
||||
### 开发工具
|
||||
- **包管理**: npm
|
||||
- **容器化**: Docker + Docker Compose
|
||||
- **代码质量**: ESLint + Prettier
|
||||
- **测试**: Jest + Supertest
|
||||
|
||||
## 🏢 系统架构
|
||||
|
||||
```mermaid
|
||||
graph TB
|
||||
subgraph "前端应用"
|
||||
A[后台管理系统]
|
||||
B[微信小程序]
|
||||
C[官方网站]
|
||||
end
|
||||
|
||||
subgraph "后端服务"
|
||||
D[API Gateway]
|
||||
E[用户服务]
|
||||
F[业务服务]
|
||||
G[文件服务]
|
||||
end
|
||||
|
||||
subgraph "数据层"
|
||||
H[MySQL]
|
||||
I[Redis]
|
||||
J[MinIO]
|
||||
end
|
||||
|
||||
A --> D
|
||||
B --> D
|
||||
C --> D
|
||||
D --> E
|
||||
D --> F
|
||||
D --> G
|
||||
E --> H
|
||||
F --> H
|
||||
G --> J
|
||||
E --> I
|
||||
```
|
||||
|
||||
## 🗄️ 数据库设计
|
||||
|
||||
### 核心表结构
|
||||
|
||||
```mermaid
|
||||
erDiagram
|
||||
users ||--o{ orders : places
|
||||
users ||--o{ addresses : has
|
||||
users {
|
||||
bigint id PK
|
||||
varchar username
|
||||
varchar password_hash
|
||||
varchar email
|
||||
varchar phone
|
||||
datetime created_at
|
||||
datetime updated_at
|
||||
}
|
||||
|
||||
orders ||--o{ order_items : contains
|
||||
orders {
|
||||
bigint id PK
|
||||
bigint user_id FK
|
||||
decimal total_amount
|
||||
varchar status
|
||||
datetime created_at
|
||||
}
|
||||
|
||||
products ||--o{ order_items : included_in
|
||||
products {
|
||||
bigint id PK
|
||||
varchar name
|
||||
decimal price
|
||||
text description
|
||||
}
|
||||
```
|
||||
|
||||
## 🌐 环境配置
|
||||
|
||||
### 开发环境 (Development)
|
||||
```env
|
||||
DB_HOST=localhost
|
||||
DB_PORT=3306
|
||||
DB_USER=root
|
||||
DB_PASSWORD=rootpassword
|
||||
DB_DATABASE=jiebanke_dev
|
||||
NODE_ENV=development
|
||||
```
|
||||
|
||||
### 测试环境 (Test)
|
||||
```env
|
||||
DB_HOST=192.168.0.240
|
||||
DB_PORT=3306
|
||||
DB_USER=root
|
||||
DB_PASSWORD=aiotAiot123!
|
||||
DB_DATABASE=jiebandata_test
|
||||
NODE_ENV=test
|
||||
```
|
||||
|
||||
### 生产环境 (Production)
|
||||
```env
|
||||
DB_HOST=129.211.213.226
|
||||
DB_PORT=9527
|
||||
DB_USER=root
|
||||
DB_PASSWORD=Aiot123
|
||||
DB_DATABASE=jiebandata
|
||||
NODE_ENV=production
|
||||
```
|
||||
|
||||
## 🔌 API 设计
|
||||
|
||||
### 用户模块 API
|
||||
|
||||
| 方法 | 路径 | 描述 | 认证 |
|
||||
|------|------|------|------|
|
||||
| POST | `/api/v1/users/register` | 用户注册 | 否 |
|
||||
| POST | `/api/v1/users/login` | 用户登录 | 否 |
|
||||
| GET | `/api/v1/users/profile` | 获取用户信息 | JWT |
|
||||
| PUT | `/api/v1/users/profile` | 更新用户信息 | JWT |
|
||||
|
||||
### 示例请求
|
||||
```javascript
|
||||
// 用户登录
|
||||
POST /api/v1/users/login
|
||||
Content-Type: application/json
|
||||
|
||||
{
|
||||
"username": "testuser",
|
||||
"password": "password123"
|
||||
}
|
||||
```
|
||||
|
||||
## 🚀 部署架构
|
||||
|
||||
### 开发部署
|
||||
```mermaid
|
||||
graph LR
|
||||
A[本地开发机] --> B[Docker Compose]
|
||||
B --> C[MySQL容器]
|
||||
B --> D[Node.js应用]
|
||||
B --> E[Redis容器]
|
||||
```
|
||||
|
||||
### 生产部署
|
||||
```mermaid
|
||||
graph TB
|
||||
subgraph "云服务器"
|
||||
A[Nginx]
|
||||
B[Node.js集群]
|
||||
C[MySQL主从]
|
||||
D[Redis哨兵]
|
||||
end
|
||||
|
||||
A --> B
|
||||
B --> C
|
||||
B --> D
|
||||
```
|
||||
|
||||
## 📊 监控与日志
|
||||
|
||||
- **应用监控**: PM2 + Keymetrics
|
||||
- **日志管理**: Winston + ELK Stack
|
||||
- **性能监控**: New Relic / Datadog
|
||||
- **错误追踪**: Sentry
|
||||
|
||||
## 🔒 安全架构
|
||||
|
||||
### 认证授权
|
||||
- JWT Token 认证
|
||||
- RBAC (基于角色的访问控制)
|
||||
- API 速率限制
|
||||
|
||||
### 数据安全
|
||||
- HTTPS 加密传输
|
||||
- 密码加盐哈希存储
|
||||
- SQL 注入防护
|
||||
- XSS 攻击防护
|
||||
|
||||
### 网络安全
|
||||
- 防火墙规则
|
||||
- IP 白名单
|
||||
- DDoS 防护
|
||||
|
||||
## 📈 性能优化
|
||||
|
||||
### 数据库优化
|
||||
- 索引优化
|
||||
- 查询缓存
|
||||
- 读写分离
|
||||
|
||||
### 应用优化
|
||||
- 响应压缩
|
||||
- 静态资源CDN
|
||||
- 内存缓存
|
||||
|
||||
### 前端优化
|
||||
- 代码分割
|
||||
- 懒加载
|
||||
- 图片优化
|
||||
|
||||
## 🛠️ 开发规范
|
||||
|
||||
### 代码规范
|
||||
- ESLint + Prettier 统一代码风格
|
||||
- Git Commit 消息规范
|
||||
- 代码审查流程
|
||||
|
||||
### 分支策略
|
||||
- Git Flow 工作流
|
||||
- 功能分支开发
|
||||
- 发布分支管理
|
||||
|
||||
### 测试策略
|
||||
- 单元测试覆盖核心逻辑
|
||||
- 集成测试API接口
|
||||
- E2E测试用户流程
|
||||
|
||||
## 📝 文档体系
|
||||
|
||||
1. **ARCHITECTURE.md** - 系统架构文档 (当前文件)
|
||||
2. **README.md** - 项目说明文档
|
||||
3. **API_DOCS.md** - API接口文档
|
||||
4. **DEPLOYMENT.md** - 部署指南
|
||||
5. **DEVELOPMENT.md** - 开发指南
|
||||
|
||||
## 🎯 后续规划
|
||||
|
||||
### 短期目标
|
||||
- [ ] 完善用户管理系统
|
||||
- [ ] 实现订单业务流程
|
||||
- [ ] 部署测试环境
|
||||
|
||||
### 中期目标
|
||||
- [ ] 微服务架构改造
|
||||
- [ ] 容器化部署
|
||||
- [ ] 自动化测试覆盖
|
||||
|
||||
### 长期目标
|
||||
- [ ] 大数据分析平台
|
||||
- [ ] AI智能推荐
|
||||
- [ ] 多语言国际化
|
||||
|
||||
---
|
||||
*最后更新: 2024年* 📅
|
||||
Reference in New Issue
Block a user