修改文件结构,统一文档格式
This commit is contained in:
136
design.md
136
design.md
@@ -26,7 +26,14 @@
|
||||
## 2. 技术架构设计
|
||||
|
||||
### 2.1 整体架构
|
||||
本项目采用前后端分离的架构设计模式,前端使用Vue.js框架,后端采用Python技术栈,数据库使用MySQL进行数据存储。
|
||||
本项目采用前后端分离的架构设计模式,包含以下主要模块:
|
||||
- **后端服务** (`backend/`): Node.js + Express + Sequelize ORM
|
||||
- **管理后台** (`admin-system/`): Vue.js 3.x + Ant Design Vue
|
||||
- **官网** (`website/`): Vue.js 3.x + 数据大屏展示
|
||||
- **微信小程序** (`mini_program/`): React + TypeScript + Tailwind CSS
|
||||
- **脚本工具** (`scripts/`): 数据库管理和维护脚本
|
||||
- **文档** (`docs/`): 项目技术文档
|
||||
- **测试** (`test/`): 测试脚本和用例
|
||||
|
||||
### 2.2 前端技术栈
|
||||
- **核心框架**: Vue.js 3.x
|
||||
@@ -38,23 +45,23 @@
|
||||
- **图表库**: ECharts
|
||||
|
||||
### 2.3 后端技术栈
|
||||
- **运行环境**: Python 3.8+
|
||||
- **Web框架**: FastAPI 或 Flask(可选)
|
||||
- **运行环境**: Node.js
|
||||
- **Web框架**: Express.js 4.18+
|
||||
- **API风格**: RESTful API
|
||||
- **认证授权**: JWT
|
||||
- **数据库访问**: SQLAlchemy 或 Peewee ORM
|
||||
- **依赖管理**: uv 工具
|
||||
- **认证授权**: JWT (jsonwebtoken 9.0+)
|
||||
- **数据库访问**: Sequelize ORM 6.30+
|
||||
- **数据库**: MySQL (mysql2 3.0+)
|
||||
- **密码加密**: bcrypt 5.1+
|
||||
- **API文档**: Swagger (swagger-jsdoc + swagger-ui-express)
|
||||
- **日志管理**: Winston 3.17+
|
||||
- **开发工具**: nodemon 3.0+
|
||||
- **跨域处理**: CORS 2.8+
|
||||
- **数据验证**: express-validator 7.2+
|
||||
- **环境变量**: dotenv 16.0+
|
||||
- **HTTP客户端**: Axios 1.4+
|
||||
- **服务器端口**: 5350
|
||||
|
||||
|
||||
#### 2.3.1 Python环境配置与依赖管理
|
||||
1. `uv` 是一个快速的 Python 包和虚拟环境管理工具
|
||||
2. MCP Server 依赖 `uv` 工具运行,必须确保系统环境中已安装 uv
|
||||
3. 安装 `uv` 的推荐方法:
|
||||
- 使用官方安装脚本:`powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"`
|
||||
- 或通过 pip 安装:`pip install uv`
|
||||
4. 设置国内镜像源加速下载:
|
||||
```bash
|
||||
$env:UV_INDEX_URL="https://mirrors.aliyun.com/pypi/simple/"
|
||||
```
|
||||
|
||||
### 2.4 部署架构
|
||||
- **开发环境**: 本地运行
|
||||
@@ -111,45 +118,52 @@
|
||||
| username | VARCHAR(50) | UNIQUE, NOT NULL | 用户名 |
|
||||
| email | VARCHAR(100) | UNIQUE, NOT NULL | 邮箱地址 |
|
||||
| password | VARCHAR(255) | NOT NULL | 密码(加密后) |
|
||||
| created_at | TIMESTAMP | DEFAULT CURRENT_TIMESTAMP | 创建时间 |
|
||||
| updated_at | TIMESTAMP | DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP | 更新时间 |
|
||||
| phone | VARCHAR(20) | NULL | 手机号 |
|
||||
| avatar | VARCHAR(255) | NULL | 头像URL |
|
||||
| status | ENUM('active','inactive','banned') | DEFAULT 'active' | 用户状态 |
|
||||
| last_login | DATETIME | NULL | 最后登录时间 |
|
||||
| created_at | DATETIME | DEFAULT CURRENT_TIMESTAMP | 创建时间 |
|
||||
| updated_at | DATETIME | DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP | 更新时间 |
|
||||
|
||||
#### 3.3.2 角色表 (roles)
|
||||
| 字段名 | 类型 | 约束 | 描述 |
|
||||
|--------|------|------|------|
|
||||
| id | INT | PRIMARY KEY, AUTO_INCREMENT | 角色ID |
|
||||
| name | VARCHAR(50) | UNIQUE, NOT NULL | 角色名称 |
|
||||
| description | TEXT | | 角色描述 |
|
||||
| created_at | TIMESTAMP | DEFAULT CURRENT_TIMESTAMP | 创建时间 |
|
||||
| description | TEXT | NULL | 角色描述 |
|
||||
| created_at | DATETIME | DEFAULT CURRENT_TIMESTAMP | 创建时间 |
|
||||
|
||||
#### 3.3.3 用户角色关联表 (user_roles)
|
||||
| 字段名 | 类型 | 约束 | 描述 |
|
||||
|--------|------|------|------|
|
||||
| user_id | INT | FOREIGN KEY (users.id), NOT NULL | 用户ID |
|
||||
| role_id | INT | FOREIGN KEY (roles.id), NOT NULL | 角色ID |
|
||||
| assigned_at | TIMESTAMP | DEFAULT CURRENT_TIMESTAMP | 分配时间 |
|
||||
| assigned_at | DATETIME | DEFAULT CURRENT_TIMESTAMP | 分配时间 |
|
||||
|
||||
#### 3.3.4 产品表 (products)
|
||||
| 字段名 | 类型 | 约束 | 描述 |
|
||||
|--------|------|------|------|
|
||||
| id | INT | PRIMARY KEY, AUTO_INCREMENT | 产品ID |
|
||||
| name | VARCHAR(100) | NOT NULL | 产品名称 |
|
||||
| description | TEXT | | 产品描述 |
|
||||
| price | DECIMAL(10,2) | NOT NULL | 产品价格 |
|
||||
| description | TEXT | NULL | 产品描述 |
|
||||
| price | INT | NOT NULL | 产品价格(单位:分) |
|
||||
| stock | INT | DEFAULT 0 | 库存数量 |
|
||||
| status | ENUM('active', 'inactive') | DEFAULT 'active' | 产品状态 |
|
||||
| created_at | TIMESTAMP | DEFAULT CURRENT_TIMESTAMP | 创建时间 |
|
||||
| updated_at | TIMESTAMP | DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP | 更新时间 |
|
||||
| image_url | VARCHAR(255) | NULL | 产品图片URL |
|
||||
| is_active | TINYINT(1) | DEFAULT 1 | 是否激活 |
|
||||
| created_at | DATETIME | DEFAULT CURRENT_TIMESTAMP | 创建时间 |
|
||||
| updated_at | DATETIME | DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP | 更新时间 |
|
||||
|
||||
#### 3.3.5 订单表 (orders)
|
||||
| 字段名 | 类型 | 约束 | 描述 |
|
||||
|--------|------|------|------|
|
||||
| id | INT | PRIMARY KEY, AUTO_INCREMENT | 订单ID |
|
||||
| user_id | INT | FOREIGN KEY (users.id), NOT NULL | 用户ID |
|
||||
| total_amount | DECIMAL(10,2) | NOT NULL | 订单总金额 |
|
||||
| status | ENUM('pending', 'paid', 'shipped', 'delivered', 'cancelled') | DEFAULT 'pending' | 订单状态 |
|
||||
| created_at | TIMESTAMP | DEFAULT CURRENT_TIMESTAMP | 创建时间 |
|
||||
| updated_at | TIMESTAMP | DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP | 更新时间 |
|
||||
| total_amount | INT | DEFAULT 0 | 订单总金额(单位:分) |
|
||||
| status | ENUM('pending','processing','shipped','delivered','cancelled') | DEFAULT 'pending' | 订单状态 |
|
||||
| payment_status | ENUM('unpaid','paid','refunded') | DEFAULT 'unpaid' | 支付状态 |
|
||||
| shipping_address | TEXT | NULL | 收货地址 |
|
||||
| created_at | DATETIME | DEFAULT CURRENT_TIMESTAMP | 创建时间 |
|
||||
| updated_at | DATETIME | DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP | 更新时间 |
|
||||
|
||||
#### 3.3.6 订单项表 (order_items)
|
||||
| 字段名 | 类型 | 约束 | 描述 |
|
||||
@@ -157,8 +171,66 @@
|
||||
| id | INT | PRIMARY KEY, AUTO_INCREMENT | 订单项ID |
|
||||
| order_id | INT | FOREIGN KEY (orders.id), NOT NULL | 订单ID |
|
||||
| product_id | INT | FOREIGN KEY (products.id), NOT NULL | 产品ID |
|
||||
| quantity | INT | NOT NULL | 数量 |
|
||||
| price | DECIMAL(10,2) | NOT NULL | 单价 |
|
||||
| quantity | INT | DEFAULT 1 | 数量 |
|
||||
| price | INT | NOT NULL | 单价(单位:分) |
|
||||
| created_at | DATETIME | DEFAULT CURRENT_TIMESTAMP | 创建时间 |
|
||||
|
||||
#### 3.3.7 养殖场表 (farms)
|
||||
| 字段名 | 类型 | 约束 | 描述 |
|
||||
|--------|------|------|------|
|
||||
| id | INT | PRIMARY KEY, AUTO_INCREMENT | 养殖场ID |
|
||||
| name | VARCHAR(100) | NOT NULL | 养殖场名称 |
|
||||
| type | VARCHAR(50) | NOT NULL | 养殖场类型 |
|
||||
| location | JSON | NOT NULL | 地理位置信息 |
|
||||
| address | VARCHAR(255) | NULL | 详细地址 |
|
||||
| contact | VARCHAR(50) | NULL | 联系人 |
|
||||
| phone | VARCHAR(20) | NULL | 联系电话 |
|
||||
| status | ENUM('active','inactive','maintenance') | DEFAULT 'active' | 养殖场状态 |
|
||||
| created_at | DATETIME | DEFAULT CURRENT_TIMESTAMP | 创建时间 |
|
||||
| updated_at | DATETIME | DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP | 更新时间 |
|
||||
|
||||
#### 3.3.8 动物表 (animals)
|
||||
| 字段名 | 类型 | 约束 | 描述 |
|
||||
|--------|------|------|------|
|
||||
| id | INT | PRIMARY KEY, AUTO_INCREMENT | 动物ID |
|
||||
| type | VARCHAR(50) | NOT NULL | 动物类型 |
|
||||
| count | INT | DEFAULT 0 | 数量 |
|
||||
| farm_id | INT | FOREIGN KEY (farms.id), NOT NULL | 所属养殖场ID |
|
||||
| health_status | ENUM('healthy','sick','quarantine') | DEFAULT 'healthy' | 健康状态 |
|
||||
| last_inspection | DATETIME | NULL | 最后检查时间 |
|
||||
| notes | TEXT | NULL | 备注信息 |
|
||||
| created_at | DATETIME | DEFAULT CURRENT_TIMESTAMP | 创建时间 |
|
||||
| updated_at | DATETIME | DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP | 更新时间 |
|
||||
|
||||
#### 3.3.9 设备表 (devices)
|
||||
| 字段名 | 类型 | 约束 | 描述 |
|
||||
|--------|------|------|------|
|
||||
| id | INT | PRIMARY KEY, AUTO_INCREMENT | 设备ID |
|
||||
| name | VARCHAR(100) | NOT NULL | 设备名称 |
|
||||
| type | VARCHAR(50) | NOT NULL | 设备类型 |
|
||||
| status | ENUM('online','offline','maintenance') | DEFAULT 'offline' | 设备状态 |
|
||||
| farm_id | INT | FOREIGN KEY (farms.id), NOT NULL | 所属养殖场ID |
|
||||
| last_maintenance | DATETIME | NULL | 最后维护时间 |
|
||||
| installation_date | DATETIME | NULL | 安装日期 |
|
||||
| metrics | JSON | NULL | 设备指标数据 |
|
||||
| created_at | DATETIME | DEFAULT CURRENT_TIMESTAMP | 创建时间 |
|
||||
| updated_at | DATETIME | DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP | 更新时间 |
|
||||
|
||||
#### 3.3.10 预警表 (alerts)
|
||||
| 字段名 | 类型 | 约束 | 描述 |
|
||||
|--------|------|------|------|
|
||||
| id | INT | PRIMARY KEY, AUTO_INCREMENT | 预警ID |
|
||||
| type | VARCHAR(50) | NOT NULL | 预警类型 |
|
||||
| level | ENUM('low','medium','high','critical') | DEFAULT 'medium' | 预警级别 |
|
||||
| message | TEXT | NOT NULL | 预警消息 |
|
||||
| status | ENUM('active','acknowledged','resolved') | DEFAULT 'active' | 预警状态 |
|
||||
| farm_id | INT | FOREIGN KEY (farms.id), NOT NULL | 所属养殖场ID |
|
||||
| device_id | INT | FOREIGN KEY (devices.id), NULL | 关联设备ID |
|
||||
| resolved_at | DATETIME | NULL | 解决时间 |
|
||||
| resolved_by | INT | FOREIGN KEY (users.id), NULL | 解决人ID |
|
||||
| resolution_notes | TEXT | NULL | 解决说明 |
|
||||
| created_at | DATETIME | DEFAULT CURRENT_TIMESTAMP | 创建时间 |
|
||||
| updated_at | DATETIME | DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP | 更新时间 |
|
||||
|
||||
### 3.4 初始数据
|
||||
|
||||
|
||||
Reference in New Issue
Block a user