docs(database): 更新数据库设计规范和核心数据表结构
- 新增数据库基础规范、API映射规范、安全规范等详细设计要求- 增加读写分离、分库分表、数据生命周期管理等策略说明 - 新建核心业务表结构,包括用户表、贷款申请表、保险申请表等 - 优化索引设计,提高查询效率
This commit is contained in:
@@ -28,7 +28,7 @@ app.use(limiter);
|
||||
// 基础路由
|
||||
app.get('/', (req, res) => {
|
||||
res.json({
|
||||
message: '欢迎使用锡林郭勒盟安格斯牛数字化管理平台API服务',
|
||||
message: '欢迎使用锡林郭勒盟地区养殖产业平台API服务',
|
||||
version: '1.0.0'
|
||||
});
|
||||
});
|
||||
|
||||
@@ -6,14 +6,138 @@
|
||||
|
||||
## 数据库设计规范
|
||||
|
||||
1. 使用InnoDB存储引擎
|
||||
2. 字符集使用utf8mb4
|
||||
3. 所有表都有创建时间和更新时间字段
|
||||
4. 主键使用自增ID
|
||||
5. 外键约束用于保证数据一致性
|
||||
6. 表名使用复数形式,以下划线分隔单词
|
||||
7. 字段名使用下划线分隔单词
|
||||
8. 所有表都包含`created_at`和`updated_at`时间戳字段
|
||||
### 1. 基础规范
|
||||
| 条目 | 规范说明 |
|
||||
|---------------------|--------------------------------------------------------------------------|
|
||||
| 存储引擎 | InnoDB(支持事务和行级锁) |
|
||||
| 字符集 | utf8mb4(支持完整Unicode,包括emoji) |
|
||||
| 主键设计 | 自增BIGINT UNSIGNED(禁止使用业务字段) |
|
||||
| 时间字段 | 必须包含`created_at`(DEFAULT CURRENT_TIMESTAMP)和`updated_at`(ON UPDATE)|
|
||||
| 命名规则 | 表名复数形式(users),字段名下划线分隔(user_name) |
|
||||
|
||||
### 2. API映射规范
|
||||
| API字段类型 | 数据库实现 |
|
||||
|---------------------|--------------------------------------------------------------------------|
|
||||
| 字符串 | VARCHAR(长度根据API校验规则定义) |
|
||||
| 枚举值 | ENUM类型或TINYINT+注释说明 |
|
||||
| 嵌套对象 | JSON类型或关联表 |
|
||||
| 文件资源 | 存储OSS路径(VARCHAR(255)) |
|
||||
|
||||
### 3. 安全规范
|
||||
| 数据类型 | 处理方式 |
|
||||
|---------------------|--------------------------------------------------------------------------|
|
||||
| 密码 | BCrypt哈希存储 |
|
||||
| 身份证号 | AES-256加密 |
|
||||
| 手机号 | 脱敏存储(保留前3后4) |
|
||||
| 审计字段 | 必须包含操作人ID和IP地址 |
|
||||
|
||||
### 4. 性能规范
|
||||
| 场景 | 优化策略 | 适用API端点示例 |
|
||||
|---------------------|--------------------------------------------------------------------------|-------------------------|
|
||||
| 高频查询 | 组合索引覆盖查询路径 | GET /api/v1/orders |
|
||||
| 大文本 | 单独分表+OSS存储(如`product_descriptions`) | POST /api/v1/products |
|
||||
| 状态字段 | 使用TINYINT+状态字典表(便于索引和扩展) | PUT /api/v1/orders/{id} |
|
||||
| 批量操作 | 提供`batch_`前缀的专用表+异步处理机制 | POST /api/v1/batch |
|
||||
| 分页查询 | 基于游标的分页(避免OFFSET性能问题) | GET /api/v1/history |
|
||||
|
||||
### 5. API字段映射规范
|
||||
| API字段 | 数据库字段 | 类型 | 校验规则 | 备注 |
|
||||
|--------------------|------------------|------------|-----------------------------------|-------------------------------|
|
||||
| user.name | user_name | VARCHAR(50)| 必填,中文2-20字符 | 显示名 |
|
||||
| user.phone | phone | VARCHAR(20)| 必填,正则校验^1[3-9]\d{9}$ | AES加密存储 |
|
||||
| order.status | status | TINYINT | 1-5枚举值 | 关联status_dict表 |
|
||||
| product.detail | detail_text | TEXT | 可选,≤2000字符 | 存OSS链接时此字段为空 |
|
||||
|
||||
### 6. 状态机设计
|
||||
| 业务模块 | 状态流转规则 | 触发API |
|
||||
|----------------|------------------------------------------------------------------------------|-----------------------|
|
||||
| 订单系统 | 待支付→已支付→配送中→已完成(不可逆) | PUT /api/v1/orders |
|
||||
| 审批流程 | 草稿→审批中→已通过/已驳回(可重新提交) | POST /api/v1/approvals|
|
||||
| 养殖档案 | 未认证→认证中→已认证(管理员可重置) | PATCH /api/v1/farms |
|
||||
|
||||
## 分库分表策略
|
||||
|
||||
### 1. 垂直分库
|
||||
| 业务模块 | 数据库实例 | 分库依据 |
|
||||
|----------------|------------|-----------------------|
|
||||
| 用户中心 | db_user | 所有用户相关表 |
|
||||
| 交易系统 | db_trade | 订单/支付/物流相关表 |
|
||||
| 政府监管 | db_gov | 防疫/补贴/检疫相关表 |
|
||||
|
||||
### 2. 水平分表
|
||||
- **触发条件**:单表数据量 ≥ 500万行
|
||||
- **分表规则**:
|
||||
- 用户表:按用户ID取模(16张)
|
||||
- 订单表:按创建月份分表(按月归档)
|
||||
- **路由策略**:ShardingSphere中间件
|
||||
|
||||
### 3. 扩容预案
|
||||
- **垂直扩容**:升级服务器配置(CPU/内存)
|
||||
- **水平扩容**:增加分片数量(需停服迁移)
|
||||
|
||||
## 读写分离设计
|
||||
|
||||
### 1. 节点角色
|
||||
| 节点类型 | 数量 | 作用域 | 同步方式 |
|
||||
|---------|-----|---------------------|------------------|
|
||||
| 主库 | 1 | 全业务写操作 | 半同步复制 |
|
||||
| 从库1 | 2 | 交易业务读查询 | 异步复制 |
|
||||
| 从库2 | 1 | 数据分析类查询 | 延迟复制(1小时) |
|
||||
|
||||
### 2. 故障转移
|
||||
- **主库宕机**:VIP漂移+从库升主(30秒内完成)
|
||||
- **从库延迟**:自动路由到低延迟节点
|
||||
|
||||
## 数据生命周期管理
|
||||
|
||||
### 1. 冷热分离
|
||||
- **热数据**:当前业务周期数据(保留6个月)
|
||||
- **冷数据**:历史数据(OSS归档存储)
|
||||
|
||||
### 2. 归档规则
|
||||
- **触发条件**:数据创建时间 ≥ 1年
|
||||
- **归档方式**:
|
||||
- 结构化数据:Parquet格式压缩
|
||||
- 图片/文件:OSS低频访问存储
|
||||
|
||||
## 性能优化
|
||||
|
||||
### 1. 缓存策略
|
||||
- **查询缓存**:Redis集群(LRU淘汰策略)
|
||||
- **更新机制**:
|
||||
- 写穿透(Write-Through)
|
||||
- 缓存失效(Cache Aside)
|
||||
|
||||
### 2. 连接池配置
|
||||
- **最大连接数**:CPU核心数 × 2 + 有效磁盘数
|
||||
- **验证查询**:`SELECT 1`(每5分钟)
|
||||
|
||||
## 灾备方案
|
||||
|
||||
### 1. 跨机房同步
|
||||
- **拓扑结构**:主-备-灾备(三机房部署)
|
||||
- **同步延迟**:≤ 5分钟(专线保障)
|
||||
|
||||
### 2. 恢复SLA
|
||||
| 故障级别 | RTO | RPO |
|
||||
|---------|-----------|-----------|
|
||||
| P0 | ≤ 15分钟 | ≤ 1分钟 |
|
||||
| P1 | ≤ 1小时 | ≤ 5分钟 |
|
||||
|
||||
## 监控指标
|
||||
|
||||
### 1. 性能看板
|
||||
- **QPS/TPS**:Prometheus + Grafana
|
||||
- **慢查询**:每10分钟采样分析
|
||||
|
||||
### 2. 容量预测
|
||||
- **增长模型**:线性回归(基于历史数据)
|
||||
- **预警阈值**:存储使用率 ≥ 75%
|
||||
|
||||
## 索引优化建议
|
||||
- 高频查询字段必须加索引
|
||||
- 联合索引遵循最左匹配原则
|
||||
- 定期使用`EXPLAIN`分析慢查询
|
||||
|
||||
## 核心数据表设计
|
||||
|
||||
@@ -23,18 +147,268 @@
|
||||
```sql
|
||||
CREATE TABLE users (
|
||||
id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY COMMENT '用户ID',
|
||||
username VARCHAR(50) NOT NULL UNIQUE COMMENT '用户名',
|
||||
email VARCHAR(100) UNIQUE COMMENT '邮箱',
|
||||
phone VARCHAR(20) UNIQUE COMMENT '手机号',
|
||||
password_hash VARCHAR(255) NOT NULL COMMENT '密码哈希值',
|
||||
real_name VARCHAR(50) COMMENT '真实姓名',
|
||||
avatar_url VARCHAR(255) COMMENT '头像URL',
|
||||
user_type ENUM('farmer', 'banker', 'insurer', 'government', 'trader', 'admin') NOT NULL COMMENT '用户类型',
|
||||
status TINYINT DEFAULT 1 COMMENT '状态: 1-正常, 0-禁用',
|
||||
last_login TIMESTAMP NULL COMMENT '最后登录时间',
|
||||
username VARCHAR(50) NOT NULL UNIQUE COMMENT '用户名(用于登录)',
|
||||
email VARCHAR(100) UNIQUE COMMENT '邮箱(用于通知和找回密码)',
|
||||
phone VARCHAR(20) UNIQUE COMMENT '手机号(实名认证用)',
|
||||
password_hash VARCHAR(255) NOT NULL COMMENT '密码哈希值(BCrypt加密)',
|
||||
real_name VARCHAR(50) COMMENT '真实姓名(需与身份证一致)',
|
||||
avatar_url VARCHAR(255) COMMENT '头像URL(OSS存储路径)',
|
||||
user_type ENUM('farmer', 'banker', 'insurer', 'government', 'trader', 'admin') NOT NULL COMMENT '用户类型:牧民/银行职员/保险员/政府人员/交易员/管理员',
|
||||
status TINYINT DEFAULT 1 COMMENT '状态: 1-正常, 0-禁用(禁用用户无法登录)',
|
||||
last_login TIMESTAMP NULL COMMENT '最后登录时间(用于活跃度分析)',
|
||||
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间(不可修改)',
|
||||
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间(自动维护)',
|
||||
INDEX idx_user_type (user_type) COMMENT '按用户类型加速查询'
|
||||
```
|
||||
|
||||
### 2. 金融业务表
|
||||
|
||||
#### 2.1 贷款申请表 (loan_applications)
|
||||
```sql
|
||||
CREATE TABLE loan_applications (
|
||||
id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
|
||||
farmer_id BIGINT UNSIGNED NOT NULL COMMENT '牧户ID',
|
||||
loan_amount DECIMAL(15,2) NOT NULL COMMENT '申请金额',
|
||||
risk_score TINYINT COMMENT '风控评分(1-100)',
|
||||
collateral_type ENUM('cattle', 'land', 'equipment') COMMENT '抵押物类型',
|
||||
status ENUM('pending', 'approved', 'rejected') DEFAULT 'pending',
|
||||
FOREIGN KEY (farmer_id) REFERENCES users(id),
|
||||
INDEX idx_status (status)
|
||||
);
|
||||
```
|
||||
|
||||
#### 2.2 保险保单表 (insurance_policies)
|
||||
```sql
|
||||
CREATE TABLE insurance_policies (
|
||||
id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
|
||||
cattle_id BIGINT UNSIGNED NOT NULL COMMENT '牛只ID',
|
||||
disaster_type ENUM('drought', 'blizzard', 'epidemic') NOT NULL,
|
||||
coverage_amount DECIMAL(15,2) NOT NULL,
|
||||
start_date DATE NOT NULL,
|
||||
end_date DATE NOT NULL,
|
||||
INDEX idx_coverage (coverage_amount)
|
||||
);
|
||||
```
|
||||
|
||||
### 3. 政府监管表
|
||||
|
||||
#### 3.1 防疫任务表 (quarantine_tasks)
|
||||
```sql
|
||||
CREATE TABLE quarantine_tasks (
|
||||
id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
|
||||
location POINT NOT NULL COMMENT 'GPS坐标',
|
||||
inspector_id BIGINT UNSIGNED NOT NULL COMMENT '检疫员ID',
|
||||
completion_status BOOLEAN DEFAULT FALSE,
|
||||
SPATIAL INDEX (location),
|
||||
FOREIGN KEY (inspector_id) REFERENCES users(id)
|
||||
);
|
||||
```
|
||||
|
||||
#### 3.2 补贴发放表 (subsidies)
|
||||
```sql
|
||||
CREATE TABLE subsidies (
|
||||
id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
|
||||
farmer_id BIGINT UNSIGNED NOT NULL,
|
||||
balance_score TINYINT NOT NULL COMMENT '草畜平衡评分(1-100)',
|
||||
amount DECIMAL(15,2) NOT NULL,
|
||||
payment_date DATE NOT NULL,
|
||||
FOREIGN KEY (farmer_id) REFERENCES users(id)
|
||||
);
|
||||
```
|
||||
|
||||
### 4. 数据中台表
|
||||
|
||||
#### 4.1 数据血缘表 (data_lineage)
|
||||
```sql
|
||||
CREATE TABLE data_lineage (
|
||||
id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
|
||||
source_table VARCHAR(100) NOT NULL,
|
||||
source_field VARCHAR(100) NOT NULL,
|
||||
target_table VARCHAR(100) NOT NULL,
|
||||
target_field VARCHAR(100) NOT NULL,
|
||||
transformation_rule TEXT COMMENT '转换规则SQL片段',
|
||||
UNIQUE KEY (source_table, source_field, target_table, target_field)
|
||||
);
|
||||
```
|
||||
|
||||
#### 4.2 接口审计表 (api_audit_logs)
|
||||
```sql
|
||||
CREATE TABLE api_audit_logs (
|
||||
id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
|
||||
user_id BIGINT UNSIGNED,
|
||||
endpoint VARCHAR(255) NOT NULL,
|
||||
request_params JSON,
|
||||
sensitive_data BOOLEAN DEFAULT FALSE,
|
||||
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||||
FOREIGN KEY (user_id) REFERENCES users(id)
|
||||
);
|
||||
```
|
||||
|
||||
### 5. AI模型表
|
||||
|
||||
#### 5.1 体况评分表 (body_condition_scores)
|
||||
```sql
|
||||
CREATE TABLE body_condition_scores (
|
||||
id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
|
||||
cattle_id BIGINT UNSIGNED NOT NULL,
|
||||
score TINYINT NOT NULL COMMENT '体况评分(1-5)',
|
||||
muscle_score TINYINT COMMENT '肌肉发育评分',
|
||||
fat_score TINYINT COMMENT '脂肪覆盖评分',
|
||||
photo_url VARCHAR(255) COMMENT '评分照片URL',
|
||||
FOREIGN KEY (cattle_id) REFERENCES cattle(id)
|
||||
);
|
||||
```
|
||||
|
||||
#### 5.2 饲料配方表 (feed_formulas)
|
||||
```sql
|
||||
CREATE TABLE feed_formulas (
|
||||
id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
|
||||
version VARCHAR(50) NOT NULL COMMENT '配方版本',
|
||||
stage ENUM('calf', 'growing', 'fattening') NOT NULL,
|
||||
ingredients JSON NOT NULL COMMENT '原料配比',
|
||||
cost_per_kg DECIMAL(10,2) NOT NULL,
|
||||
is_active BOOLEAN DEFAULT TRUE COMMENT '是否当前使用版本',
|
||||
UNIQUE KEY (version, stage)
|
||||
);
|
||||
);
|
||||
|
||||
-- 常用查询示例:
|
||||
-- 1. 按用户类型统计数量
|
||||
-- SELECT user_type, COUNT(*) FROM users GROUP BY user_type;
|
||||
-- 2. 查询最近登录的活跃用户
|
||||
-- SELECT * FROM users WHERE last_login > DATE_SUB(NOW(), INTERVAL 7 DAY);
|
||||
|
||||
### 2. 贷款申请表 (loan_applications)
|
||||
存储贷款申请信息,包括申请人、贷款金额、用途等。
|
||||
|
||||
```sql
|
||||
CREATE TABLE loan_applications (
|
||||
id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY COMMENT '申请ID',
|
||||
user_id BIGINT UNSIGNED NOT NULL COMMENT '申请人ID(关联users表)',
|
||||
amount DECIMAL(15,2) NOT NULL COMMENT '贷款金额(单位:元,精确到分)',
|
||||
purpose VARCHAR(255) NOT NULL COMMENT '贷款用途(如:购买饲料、扩建牛舍)',
|
||||
status ENUM('pending', 'approved', 'rejected', 'disbursed') DEFAULT 'pending' COMMENT '状态:待审批/已通过/已拒绝/已放款',
|
||||
application_date TIMESTAMP DEFAULT CURRENT_TIMESTAMP COMMENT '申请日期(自动记录)',
|
||||
approval_date TIMESTAMP NULL COMMENT '审批日期(审批通过时更新)',
|
||||
FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE CASCADE COMMENT '级联删除用户时同步清理',
|
||||
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||||
|
||||
INDEX idx_status (status) COMMENT '加速状态筛选',
|
||||
INDEX idx_user_id (user_id) COMMENT '加速申请人查询'
|
||||
);
|
||||
|
||||
-- 常用查询示例:
|
||||
-- 1. 按状态统计贷款申请
|
||||
-- SELECT status, COUNT(*) FROM loan_applications GROUP BY status;
|
||||
-- 2. 查询某用户的贷款历史
|
||||
-- SELECT * FROM loan_applications WHERE user_id = 123 ORDER BY application_date DESC;
|
||||
|
||||
### 3. 质押物监控表 (collateral_monitoring)
|
||||
存储质押物(牛只)的状态监控信息。
|
||||
|
||||
```sql
|
||||
CREATE TABLE collateral_monitoring (
|
||||
id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY COMMENT '监控ID',
|
||||
loan_id BIGINT UNSIGNED NOT NULL COMMENT '关联贷款ID',
|
||||
cattle_id BIGINT UNSIGNED NOT NULL COMMENT '质押牛只ID',
|
||||
health_status VARCHAR(100) NOT NULL COMMENT '健康状况',
|
||||
location VARCHAR(255) NOT NULL COMMENT '当前位置',
|
||||
last_check_date TIMESTAMP NULL COMMENT '最后检查日期',
|
||||
FOREIGN KEY (loan_id) REFERENCES loan_applications(id),
|
||||
FOREIGN KEY (cattle_id) REFERENCES cattle(id),
|
||||
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间'
|
||||
);
|
||||
```
|
||||
|
||||
### 4. 还款计划表 (repayment_schedules)
|
||||
存储贷款的还款计划信息。
|
||||
|
||||
```sql
|
||||
CREATE TABLE repayment_schedules (
|
||||
id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY COMMENT '计划ID',
|
||||
loan_id BIGINT UNSIGNED NOT NULL COMMENT '关联贷款ID',
|
||||
due_date TIMESTAMP NOT NULL COMMENT '还款日期',
|
||||
amount DECIMAL(15,2) NOT NULL COMMENT '还款金额',
|
||||
status ENUM('pending', 'paid', 'overdue') DEFAULT 'pending' COMMENT '状态',
|
||||
payment_date TIMESTAMP NULL COMMENT '实际还款日期',
|
||||
FOREIGN KEY (loan_id) REFERENCES loan_applications(id),
|
||||
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间'
|
||||
);
|
||||
```
|
||||
|
||||
### 5. 保险申请表 (insurance_applications)
|
||||
存储保险申请信息。
|
||||
|
||||
```sql
|
||||
CREATE TABLE insurance_applications (
|
||||
id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY COMMENT '申请ID',
|
||||
user_id BIGINT UNSIGNED NOT NULL COMMENT '申请人ID',
|
||||
cattle_id BIGINT UNSIGNED NOT NULL COMMENT '投保牛只ID',
|
||||
coverage_amount DECIMAL(15,2) NOT NULL COMMENT '保额',
|
||||
premium DECIMAL(15,2) NOT NULL COMMENT '保费',
|
||||
start_date TIMESTAMP NOT NULL COMMENT '保险开始日期',
|
||||
end_date TIMESTAMP NOT NULL COMMENT '保险结束日期',
|
||||
status ENUM('pending', 'approved', 'rejected', 'active', 'expired') DEFAULT 'pending' COMMENT '状态',
|
||||
FOREIGN KEY (user_id) REFERENCES users(id),
|
||||
FOREIGN KEY (cattle_id) REFERENCES cattle(id),
|
||||
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间'
|
||||
);
|
||||
```
|
||||
|
||||
### 6. 理赔记录表 (claim_records)
|
||||
存储保险理赔记录。
|
||||
|
||||
```sql
|
||||
CREATE TABLE claim_records (
|
||||
id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY COMMENT '理赔ID',
|
||||
insurance_id BIGINT UNSIGNED NOT NULL COMMENT '关联保险ID',
|
||||
claim_amount DECIMAL(15,2) NOT NULL COMMENT '理赔金额',
|
||||
claim_reason VARCHAR(255) NOT NULL COMMENT '理赔原因',
|
||||
status ENUM('pending', 'approved', 'rejected', 'paid') DEFAULT 'pending' COMMENT '状态',
|
||||
approval_date TIMESTAMP NULL COMMENT '审批日期',
|
||||
payment_date TIMESTAMP NULL COMMENT '支付日期',
|
||||
FOREIGN KEY (insurance_id) REFERENCES insurance_applications(id),
|
||||
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间'
|
||||
);
|
||||
```
|
||||
|
||||
### 7. 风险评估表 (risk_assessments)
|
||||
存储保险风险评估信息。
|
||||
|
||||
```sql
|
||||
CREATE TABLE risk_assessments (
|
||||
id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY COMMENT '评估ID',
|
||||
insurance_id BIGINT UNSIGNED NOT NULL COMMENT '关联保险ID',
|
||||
risk_level ENUM('low', 'medium', 'high') NOT NULL COMMENT '风险等级',
|
||||
assessment_date TIMESTAMP DEFAULT CURRENT_TIMESTAMP COMMENT '评估日期',
|
||||
notes TEXT COMMENT '评估备注',
|
||||
FOREIGN KEY (insurance_id) REFERENCES insurance_applications(id),
|
||||
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间'
|
||||
);
|
||||
```
|
||||
|
||||
### 8. 监管记录表 (supervision_records)
|
||||
存储政府监管记录。
|
||||
|
||||
```sql
|
||||
CREATE TABLE supervision_records (
|
||||
id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY COMMENT '记录ID',
|
||||
user_id BIGINT UNSIGNED NOT NULL COMMENT '监管人员ID',
|
||||
cattle_id BIGINT UNSIGNED NOT NULL COMMENT '监管牛只ID',
|
||||
inspection_date TIMESTAMP NOT NULL COMMENT '检查日期',
|
||||
findings TEXT NOT NULL COMMENT '检查结果',
|
||||
actions_taken TEXT COMMENT '采取的措施',
|
||||
FOREIGN KEY (user_id) REFERENCES users(id),
|
||||
FOREIGN KEY (cattle_id) REFERENCES cattle(id),
|
||||
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间'
|
||||
);
|
||||
```
|
||||
INDEX idx_username (username),
|
||||
INDEX idx_email (email),
|
||||
INDEX idx_phone (phone),
|
||||
|
||||
@@ -12,6 +12,15 @@
|
||||
4. 主键使用自增ID
|
||||
5. 外键约束用于保证数据一致性
|
||||
|
||||
## 备份与恢复策略
|
||||
- **每日全量备份**: 通过`mysqldump`导出数据
|
||||
- **Binlog增量备份**: 实时同步到备份服务器
|
||||
- **恢复测试**: 每月验证备份文件可用性
|
||||
|
||||
## 数据迁移工具
|
||||
- 使用Flyway管理数据库版本变更
|
||||
- 迁移脚本存放在`/migrations`目录
|
||||
|
||||
## 核心数据表
|
||||
|
||||
### 1. 用户表 (users)
|
||||
|
||||
70
backend/services/README.md
Normal file
70
backend/services/README.md
Normal file
@@ -0,0 +1,70 @@
|
||||
# 后端服务模块
|
||||
|
||||
## 概述
|
||||
|
||||
本目录包含系统的所有微服务模块,每个模块对应一个业务领域,实现系统的分布式架构。
|
||||
|
||||
## 服务模块列表
|
||||
|
||||
### 1. 养殖管理服务 (farming-service)
|
||||
- 牛只档案管理
|
||||
- 饲养记录管理
|
||||
- 繁殖管理
|
||||
- 环境监测数据处理
|
||||
|
||||
### 2. 金融服务 (finance-service)
|
||||
- 银行贷款服务
|
||||
- 保险服务
|
||||
- 风控管理
|
||||
|
||||
### 3. 政府监管服务 (government-service)
|
||||
- 防疫监管
|
||||
- 补贴管理
|
||||
- 政策信息发布
|
||||
|
||||
### 4. 交易管理服务 (trade-service)
|
||||
- 活牛交易管理
|
||||
- 合同管理
|
||||
- 支付流程管理
|
||||
|
||||
### 5. 商城管理服务 (mall-service)
|
||||
- 商品信息管理
|
||||
- 库存管理
|
||||
- 订单处理
|
||||
|
||||
### 6. 数据中台服务 (data-platform-service)
|
||||
- 数据查询服务
|
||||
- 数据共享服务
|
||||
- 统计分析服务
|
||||
|
||||
### 7. AI能力服务 (ai-service)
|
||||
- 体况评估服务
|
||||
- 配方推荐服务
|
||||
- 智能诊断服务
|
||||
|
||||
### 8. 用户中心服务 (user-center-service)
|
||||
- 用户管理
|
||||
- 权限管理
|
||||
- 认证服务
|
||||
|
||||
## 微服务架构说明
|
||||
|
||||
每个服务模块都是独立的,具有自己的数据库和业务逻辑,通过API网关进行统一访问和管理。服务之间通过RESTful API或消息队列进行通信。
|
||||
|
||||
## 部署说明
|
||||
|
||||
每个服务模块都可以独立部署,支持容器化部署(Docker)和云原生部署。
|
||||
|
||||
## 目录结构
|
||||
|
||||
```
|
||||
services/
|
||||
├── farming-service/ # 养殖管理服务
|
||||
├── finance-service/ # 金融服务
|
||||
├── government-service/ # 政府监管服务
|
||||
├── trade-service/ # 交易管理服务
|
||||
├── mall-service/ # 商城管理服务
|
||||
├── data-platform-service/ # 数据中台服务
|
||||
├── ai-service/ # AI能力服务
|
||||
└── user-center-service/ # 用户中心服务
|
||||
```
|
||||
Reference in New Issue
Block a user