Files
erp-next/doc/数据库业务表结构分析报告.md

498 lines
20 KiB
Markdown
Raw Permalink Normal View History

# 福安德智慧报价平台 - 数据库业务表结构分析报告
> 文档版本: v1.0
> 生成日期: 2025-05-27
> 关联文档: [福安德智慧报价平台-完整开发方案.md](./福安德智慧报价平台-完整开发方案.md)
---
## 一、概述
本报告对福安德智慧报价平台的数据库业务表结构进行全面分析,评估现有表结构是否满足开发方案中的业务需求,并指出缺失字段和建议优化项。
### 1.1 业务模块划分
根据开发方案,系统包含以下核心业务模块:
1. **物料信息管理** - 基础数据层
2. **供应商管理** - 供货商基础、历史报价、纠纷
3. **报价请求(RFQ)** - 询价单管理
4. **供应商报价** - 子报价单填写
5. **智慧比价** - 报价对比分析
6. **采购单管理** - 订单执行
7. **供应商评价** - 绩效评估
8. **订单异议** - 纠纷处理
9. **交易记录** - 财务流水
---
## 二、业务表结构详细分析
### 2.1 物料分类表 (biz_material_category)
#### 表结构
| 字段名 | 类型 | 可空 | 默认值 | 备注 | 需求匹配度 |
|--------|------|------|--------|------|-----------|
| category_id | BIGINT | NO | AUTO_INCREMENT | 主键 | ✅ |
| tenant_id | BIGINT | NO | 1 | 租户ID | ✅ |
| category_name | VARCHAR(100) | NO | - | 分类名称 | ✅ |
| parent_id | BIGINT | YES | 0 | 父分类ID | ✅ |
| ancestors | VARCHAR(500) | YES | '' | 祖级列表 | ✅ |
| sort | INT | YES | 0 | 排序 | ✅ |
| status | CHAR(1) | YES | '0' | 状态 | ⚠️ 无注释 |
| create_by | VARCHAR(64) | YES | '' | 创建者 | ⚠️ 无注释 |
| create_time | DATETIME | YES | NULL | 创建时间 | ⚠️ 无注释 |
#### 分析结论
| 评估项 | 结果 |
|--------|------|
| 需求满足度 | 80% |
| 缺失字段 | category_code(分类编码)、icon(图标)、level(层级) |
| 建议优化 | 补充字段注释 |
---
### 2.2 物料表 (biz_material)
#### 表结构
| 字段名 | 类型 | 可空 | 默认值 | 备注 | 需求匹配度 |
|--------|------|------|--------|------|-----------|
| material_id | BIGINT | NO | AUTO_INCREMENT | 主键 | ✅ |
| tenant_id | BIGINT | NO | 1 | 租户ID | ✅ |
| category_id | BIGINT | YES | 0 | 分类ID | ✅ |
| material_code | VARCHAR(50) | NO | - | 物料编码 | ✅ |
| material_name | VARCHAR(200) | NO | - | 物料名称 | ✅ |
| spec | VARCHAR(500) | YES | '' | 规格型号 | ✅ |
| unit | VARCHAR(50) | YES | '' | 单位 | ✅ |
| brand | VARCHAR(100) | YES | '' | **厂家/品牌** | ✅ 已修改注释 |
| description | TEXT | YES | NULL | 描述 | ✅ |
| status | CHAR(1) | YES | '0' | 状态 | ⚠️ 无注释 |
| create_by | VARCHAR(64) | YES | '' | 创建者 | ⚠️ 无注释 |
| create_time | DATETIME | YES | NULL | 创建时间 | ⚠️ 无注释 |
| update_by | VARCHAR(64) | YES | '' | 更新者 | ⚠️ 无注释 |
| update_time | DATETIME | YES | NULL | 更新时间 | ⚠️ 无注释 |
| remark | VARCHAR(500) | YES | NULL | 备注 | ✅ |
#### 二期扩展字段 (2026-05-27)
| 字段名 | 类型 | 可空 | 默认值 | 备注 | 需求匹配度 |
|--------|------|------|--------|------|-----------|
| performance_params | TEXT | YES | NULL | 性能参数(JSON) | ✅ 新增 |
| material | VARCHAR(100) | YES | '' | 材质 | ✅ 新增 |
| purpose | VARCHAR(500) | YES | '' | 用途 | ✅ 新增 |
| image_url | VARCHAR(500) | YES | '' | 物料图片URL | ✅ 新增 |
#### 分析结论
| 评估项 | 结果 |
|--------|------|
| 需求满足度 | 95% |
| 已满足需求 | 物料ID、厂家/品牌、规格型号、性能参数、材质、用途、备注 |
| 建议优化 | 补充status、create_by等字段注释 |
---
### 2.3 供应商表 (biz_supplier)
#### 表结构
| 字段名 | 类型 | 可空 | 默认值 | 备注 | 需求匹配度 |
|--------|------|------|--------|------|-----------|
| supplier_id | BIGINT | NO | AUTO_INCREMENT | 主键 | ✅ |
| tenant_id | BIGINT | NO | 1 | 租户ID | ✅ |
| supplier_name | VARCHAR(200) | NO | - | 供应商名称 | ✅ |
| contact | VARCHAR(50) | YES | '' | 联系人 | ⚠️ 无注释 |
| phone | VARCHAR(20) | YES | '' | 联系电话 | ⚠️ 无注释 |
| email | VARCHAR(100) | YES | '' | 邮箱 | ⚠️ 无注释 |
| address | VARCHAR(500) | YES | '' | 地址 | ⚠️ 无注释 |
| user_id | BIGINT | YES | NULL | 关联用户ID | ❌ 无注释,用途不明 |
| status | CHAR(1) | YES | '0' | 状态 | ⚠️ 无注释 |
| create_by | VARCHAR(64) | YES | '' | 创建者 | ⚠️ 无注释 |
| create_time | DATETIME | YES | NULL | 创建时间 | ⚠️ 无注释 |
| update_by | VARCHAR(64) | YES | '' | 更新者 | ⚠️ 无注释 |
| update_time | DATETIME | YES | NULL | 更新时间 | ⚠️ 无注释 |
| remark | VARCHAR(500) | YES | NULL | 备注 | ✅ |
#### 分析结论
| 评估项 | 结果 |
|--------|------|
| 需求满足度 | 60% |
| **缺失字段** | 供应商编码、统一社会信用代码、开户银行、银行账号、合作状态、资质证书 |
| **需求不匹配** | 缺少"历史报价"、"纠纷"相关字段(应在关联表中) |
| 建议优化 | 补充所有字段注释;考虑增加供应商分类字段 |
---
### 2.4 报价请求主表 (biz_rfq)
#### 表结构
| 字段名 | 类型 | 可空 | 默认值 | 备注 | 需求匹配度 |
|--------|------|------|--------|------|-----------|
| rfq_id | BIGINT | NO | AUTO_INCREMENT | 主键 | ✅ |
| tenant_id | BIGINT | NO | 1 | 租户ID | ✅ |
| rfq_no | VARCHAR(50) | NO | - | 询价单号 | ✅ |
| rfq_title | VARCHAR(200) | NO | - | 询价标题 | ✅ |
| deadline | DATETIME | YES | NULL | 截止日期 | ⚠️ 无注释 |
| delivery_addr | VARCHAR(500) | YES | '' | 交货地址 | ⚠️ 无注释 |
| status | VARCHAR(20) | YES | 'draft' | 状态 | ⚠️ 无注释 |
| remark | TEXT | YES | NULL | 备注 | ✅ |
| create_by | VARCHAR(64) | YES | '' | 创建者 | ⚠️ 无注释 |
| create_time | DATETIME | YES | NULL | 创建时间 | ⚠️ 无注释 |
| update_by | VARCHAR(64) | YES | '' | 更新者 | ⚠️ 无注释 |
| update_time | DATETIME | YES | NULL | 更新时间 | ⚠️ 无注释 |
#### 分析结论
| 评估项 | 结果 |
|--------|------|
| 需求满足度 | 70% |
| **缺失字段** | 询价类型、紧急程度、付款方式、税率、甲方ID、项目ID |
| **状态值不明确** | status字段应注释状态值: draft/published/closed/completed |
| 建议优化 | 补充字段注释;明确状态流转规则 |
---
### 2.5 报价请求明细表 (biz_rfq_item)
#### 表结构
| 字段名 | 类型 | 可空 | 默认值 | 备注 | 需求匹配度 |
|--------|------|------|--------|------|-----------|
| item_id | BIGINT | NO | AUTO_INCREMENT | 主键 | ✅ |
| rfq_id | BIGINT | NO | - | 询价单ID | ✅ |
| material_id | BIGINT | YES | 0 | 物料ID | ✅ |
| material_name | VARCHAR(200) | NO | - | 物料名称 | ✅ |
| spec | VARCHAR(500) | YES | '' | 规格 | ⚠️ 无注释 |
| unit | VARCHAR(50) | YES | '' | 单位 | ⚠️ 无注释 |
| quantity | DECIMAL(15,4) | NO | - | 数量 | ⚠️ 无注释 |
| expected_price | DECIMAL(15,4) | YES | NULL | 期望单价 | ⚠️ 无注释 |
| remark | VARCHAR(500) | YES | '' | 备注 | ✅ |
#### 分析结论
| 评估项 | 结果 |
|--------|------|
| 需求满足度 | 85% |
| **缺失字段** | 技术要求、质量标准、品牌要求、交货期要求 |
| 建议优化 | 补充字段注释 |
---
### 2.6 询价供应商关联表 (biz_rfq_supplier)
#### 表结构
| 字段名 | 类型 | 可空 | 默认值 | 备注 | 需求匹配度 |
|--------|------|------|--------|------|-----------|
| id | BIGINT | NO | AUTO_INCREMENT | 主键 | ✅ |
| rfq_id | BIGINT | NO | - | 询价单ID | ✅ |
| supplier_id | BIGINT | NO | - | 供应商ID | ✅ |
| invited_time | DATETIME | YES | NULL | 邀请时间 | ⚠️ 无注释 |
| quoted_time | DATETIME | YES | NULL | 报价时间 | ⚠️ 无注释 |
| status | VARCHAR(20) | YES | 'pending' | 状态 | ⚠️ 无注释 |
#### 分析结论
| 评估项 | 结果 |
|--------|------|
| 需求满足度 | 75% |
| **缺失字段** | 邀请人、邀请方式、是否查看、查看时间 |
| **状态值不明确** | status字段应注释: pending/invited/quoted/rejected |
| 建议优化 | 补充字段注释;增加邀请记录追踪 |
---
### 2.7 供应商报价单表 (biz_quotation)
#### 表结构
| 字段名 | 类型 | 可空 | 默认值 | 备注 | 需求匹配度 |
|--------|------|------|--------|------|-----------|
| quotation_id | BIGINT | NO | AUTO_INCREMENT | 主键 | ✅ |
| tenant_id | BIGINT | NO | 1 | 租户ID | ✅ |
| rfq_id | BIGINT | NO | - | 询价单ID | ✅ |
| supplier_id | BIGINT | NO | - | 供应商ID | ✅ |
| quote_no | VARCHAR(50) | YES | '' | 报价单号 | ⚠️ 无注释 |
| valid_days | INT | YES | 30 | 有效期(天) | ⚠️ 无注释 |
| delivery_days | INT | YES | 0 | 交货周期(天) | ⚠️ 无注释 |
| total_amount | DECIMAL(15,4) | YES | 0 | 总金额 | ⚠️ 无注释 |
| currency | VARCHAR(10) | YES | 'CNY' | 币种 | ⚠️ 无注释 |
| status | VARCHAR(20) | YES | 'draft' | 状态 | ⚠️ 无注释 |
| note | TEXT | YES | NULL | 备注 | ⚠️ 无注释 |
| submit_time | DATETIME | YES | NULL | 提交时间 | ⚠️ 无注释 |
| create_by | VARCHAR(64) | YES | '' | 创建者 | ⚠️ 无注释 |
| create_time | DATETIME | YES | NULL | 创建时间 | ⚠️ 无注释 |
| update_time | DATETIME | YES | NULL | 更新时间 | ⚠️ 无注释 |
#### 分析结论
| 评估项 | 结果 |
|--------|------|
| 需求满足度 | 70% |
| **缺失字段** | 报价有效期截止日期、付款方式、运费承担方、税率、是否含税 |
| **状态值不明确** | status字段应注释: draft/submitted/accepted/rejected |
| 建议优化 | 补充所有字段注释 |
---
### 2.8 报价明细表 (biz_quotation_item)
#### 表结构
| 字段名 | 类型 | 可空 | 默认值 | 备注 | 需求匹配度 |
|--------|------|------|--------|------|-----------|
| item_id | BIGINT | NO | AUTO_INCREMENT | 主键 | ✅ |
| quotation_id | BIGINT | NO | - | 报价单ID | ✅ |
| rfq_item_id | BIGINT | NO | - | 询价明细ID | ✅ |
| material_name | VARCHAR(200) | YES | '' | 物料名称 | ⚠️ 无注释 |
| spec | VARCHAR(500) | YES | '' | 规格 | ⚠️ 无注释 |
| unit | VARCHAR(50) | YES | '' | 单位 | ⚠️ 无注释 |
| quantity | DECIMAL(15,4) | YES | 0 | 数量 | ⚠️ 无注释 |
| unit_price | DECIMAL(15,4) | NO | - | 单价 | ⚠️ 无注释 |
| total_price | DECIMAL(15,4) | YES | 0 | 总价 | ⚠️ 无注释 |
| delivery_days | INT | YES | 0 | 交货天数 | ⚠️ 无注释 |
| remark | VARCHAR(500) | YES | '' | 备注 | ✅ |
#### 分析结论
| 评估项 | 结果 |
|--------|------|
| 需求满足度 | 80% |
| **缺失字段** | 品牌、产地、质保期、最小起订量、库存状态 |
| 建议优化 | 补充所有字段注释 |
---
### 2.9 采购单主表 (biz_purchase_order)
#### 表结构
| 字段名 | 类型 | 可空 | 默认值 | 备注 | 需求匹配度 |
|--------|------|------|--------|------|-----------|
| po_id | BIGINT | NO | AUTO_INCREMENT | 主键 | ✅ |
| tenant_id | BIGINT | NO | 1 | 租户ID | ✅ |
| po_no | VARCHAR(50) | NO | - | 采购单号 | ✅ |
| rfq_id | BIGINT | YES | NULL | 询价单ID | ✅ |
| supplier_id | BIGINT | NO | - | 供应商ID | ✅ |
| total_amount | DECIMAL(15,4) | YES | 0 | 总金额 | ⚠️ 无注释 |
| currency | VARCHAR(10) | YES | 'CNY' | 币种 | ⚠️ 无注释 |
| delivery_addr | VARCHAR(500) | YES | '' | 交货地址 | ⚠️ 无注释 |
| delivery_date | DATE | YES | NULL | 交货日期 | ⚠️ 无注释 |
| status | VARCHAR(20) | YES | 'draft' | 状态 | ⚠️ 无注释 |
| remark | TEXT | YES | NULL | 备注 | ✅ |
| create_by | VARCHAR(64) | YES | '' | 创建者 | ⚠️ 无注释 |
| create_time | DATETIME | YES | NULL | 创建时间 | ⚠️ 无注释 |
| update_by | VARCHAR(64) | YES | '' | 更新者 | ⚠️ 无注释 |
| update_time | DATETIME | YES | NULL | 更新时间 | ⚠️ 无注释 |
#### 分析结论
| 评估项 | 结果 |
|--------|------|
| 需求满足度 | 65% |
| **缺失字段** | 合同编号、付款方式、付款比例、运费承担、税率、发票类型、联系人、联系电话 |
| **状态值不明确** | status字段应注释: draft/confirmed/shipped/received/completed |
| 建议优化 | 补充所有字段注释;增加订单执行跟踪字段 |
---
### 2.10 采购单明细表 (biz_purchase_order_item)
#### 表结构
| 字段名 | 类型 | 可空 | 默认值 | 备注 | 需求匹配度 |
|--------|------|------|--------|------|-----------|
| item_id | BIGINT | NO | AUTO_INCREMENT | 主键 | ✅ |
| po_id | BIGINT | NO | - | 采购单ID | ✅ |
| material_id | BIGINT | YES | 0 | 物料ID | ✅ |
| material_name | VARCHAR(200) | NO | - | 物料名称 | ✅ |
| spec | VARCHAR(500) | YES | '' | 规格 | ⚠️ 无注释 |
| unit | VARCHAR(50) | YES | '' | 单位 | ⚠️ 无注释 |
| quantity | DECIMAL(15,4) | NO | - | 数量 | ⚠️ 无注释 |
| unit_price | DECIMAL(15,4) | NO | - | 单价 | ⚠️ 无注释 |
| total_price | DECIMAL(15,4) | YES | 0 | 总价 | ⚠️ 无注释 |
| remark | VARCHAR(500) | YES | '' | 备注 | ✅ |
#### 分析结论
| 评估项 | 结果 |
|--------|------|
| 需求满足度 | 75% |
| **缺失字段** | 已到货数量、到货率、质检状态、入库状态 |
| 建议优化 | 补充字段注释;增加订单执行跟踪字段 |
---
### 2.11 供应商评价表 (biz_supplier_evaluation)
#### 表结构
| 字段名 | 类型 | 可空 | 默认值 | 备注 | 需求匹配度 |
|--------|------|------|--------|------|-----------|
| eval_id | BIGINT | NO | AUTO_INCREMENT | 主键 | ✅ |
| tenant_id | BIGINT | NO | 1 | 租户ID | ✅ |
| po_id | BIGINT | NO | - | 采购单ID | ✅ |
| supplier_id | BIGINT | NO | - | 供应商ID | ✅ |
| quality_score | INT | YES | 5 | 质量评分 | ⚠️ 无注释 |
| delivery_score | INT | YES | 5 | 交货评分 | ⚠️ 无注释 |
| service_score | INT | YES | 5 | 服务评分 | ⚠️ 无注释 |
| price_score | INT | YES | 5 | 价格评分 | ⚠️ 无注释 |
| total_score | DECIMAL(3,1) | YES | 5.0 | 综合评分 | ⚠️ 无注释 |
| comment | TEXT | YES | NULL | 评价内容 | ⚠️ 无注释 |
| evaluator | VARCHAR(64) | YES | '' | 评价人 | ⚠️ 无注释 |
| eval_time | DATETIME | YES | NULL | 评价时间 | ⚠️ 无注释 |
#### 分析结论
| 评估项 | 结果 |
|--------|------|
| 需求满足度 | 75% |
| **缺失字段** | 评价周期、是否匿名、评价状态(草稿/已提交) |
| **评分范围不明确** | 应注释评分范围: 1-10分或1-5分 |
| 建议优化 | 补充所有字段注释;明确评分规则 |
---
### 2.12 订单异议表 (biz_order_objection)
#### 表结构
| 字段名 | 类型 | 可空 | 默认值 | 备注 | 需求匹配度 |
|--------|------|------|--------|------|-----------|
| objection_id | BIGINT | NO | AUTO_INCREMENT | 主键 | ✅ |
| tenant_id | BIGINT | NO | 1 | 租户ID | ✅ |
| po_id | BIGINT | NO | - | 采购单ID | ✅ |
| supplier_id | BIGINT | NO | - | 供应商ID | ✅ |
| reason | TEXT | NO | - | 异议原因 | ⚠️ 无注释 |
| attachment | VARCHAR(500) | YES | '' | 附件 | ⚠️ 无注释 |
| status | VARCHAR(20) | YES | 'pending' | 状态 | ⚠️ 无注释 |
| resolution | TEXT | YES | NULL | 解决方案 | ⚠️ 无注释 |
| create_by | VARCHAR(64) | YES | '' | 创建者 | ⚠️ 无注释 |
| create_time | DATETIME | YES | NULL | 创建时间 | ⚠️ 无注释 |
| resolve_time | DATETIME | YES | NULL | 解决时间 | ⚠️ 无注释 |
#### 分析结论
| 评估项 | 结果 |
|--------|------|
| 需求满足度 | 70% |
| **缺失字段** | 异议类型(质量/交期/数量/其他)、责任方、赔偿金额、关闭人、关闭时间 |
| **状态值不明确** | status字段应注释: pending/processing/resolved/closed |
| 建议优化 | 补充所有字段注释;完善异议处理流程 |
---
### 2.13 交易记录表 (biz_transaction)
#### 表结构
| 字段名 | 类型 | 可空 | 默认值 | 备注 | 需求匹配度 |
|--------|------|------|--------|------|-----------|
| tx_id | BIGINT | NO | AUTO_INCREMENT | 主键 | ✅ |
| tenant_id | BIGINT | NO | 1 | 租户ID | ✅ |
| po_id | BIGINT | YES | NULL | 采购单ID | ✅ |
| supplier_id | BIGINT | YES | NULL | 供应商ID | ✅ |
| tx_type | VARCHAR(50) | YES | '' | 交易类型 | ⚠️ 无注释 |
| tx_no | VARCHAR(50) | YES | '' | 交易单号 | ⚠️ 无注释 |
| amount | DECIMAL(15,4) | YES | NULL | 金额 | ⚠️ 无注释 |
| currency | VARCHAR(10) | YES | 'CNY' | 币种 | ⚠️ 无注释 |
| description | TEXT | YES | NULL | 描述 | ⚠️ 无注释 |
| operator | VARCHAR(64) | YES | '' | 操作人 | ⚠️ 无注释 |
| tx_time | DATETIME | YES | NULL | 交易时间 | ⚠️ 无注释 |
| create_time | DATETIME | YES | NULL | 创建时间 | ⚠️ 无注释 |
#### 分析结论
| 评估项 | 结果 |
|--------|------|
| 需求满足度 | 60% |
| **缺失字段** | 交易对方账户、交易状态、凭证号、附件、审核人、审核时间 |
| **交易类型不明确** | tx_type应注释: payment/refund/deposit/withdrawal |
| 建议优化 | 补充所有字段注释;完善财务审核流程 |
---
## 三、总体评估
### 3.1 各表需求满足度汇总
| 表名 | 需求满足度 | 主要问题 |
|------|-----------|---------|
| biz_material_category | 80% | 缺少分类编码、图标字段 |
| biz_material | 95% | 字段注释不完整 |
| biz_supplier | 60% | 缺少供应商编码、资质信息 |
| biz_rfq | 70% | 缺少询价类型、付款方式 |
| biz_rfq_item | 85% | 缺少技术要求、质量标准 |
| biz_rfq_supplier | 75% | 缺少邀请记录追踪 |
| biz_quotation | 70% | 缺少付款方式、运费承担 |
| biz_quotation_item | 80% | 缺少品牌、产地、质保期 |
| biz_purchase_order | 65% | 缺少合同信息、付款信息 |
| biz_purchase_order_item | 75% | 缺少到货跟踪字段 |
| biz_supplier_evaluation | 75% | 评分规则不明确 |
| biz_order_objection | 70% | 缺少异议类型、赔偿信息 |
| biz_transaction | 60% | 缺少交易状态、审核流程 |
### 3.2 共性问题
1. **字段注释缺失严重** - 约70%的字段缺少注释
2. **状态值不明确** - 所有status字段未注释状态值枚举
3. **缺少关键业务字段** - 如付款方式、税率、发票类型等
4. **缺少审计字段** - 部分表缺少update_by字段
### 3.3 建议优化项
#### 高优先级 (P0)
- [ ] 补充所有字段注释
- [ ] 明确所有status字段的状态值枚举
- [ ] 为biz_supplier添加供应商编码字段
#### 中优先级 (P1)
- [ ] 为biz_purchase_order添加合同信息字段
- [ ] 为biz_transaction添加交易状态字段
- [ ] 为biz_order_objection添加异议类型字段
#### 低优先级 (P2)
- [ ] 为biz_material_category添加分类编码
- [ ] 为biz_quotation_item添加品牌、产地字段
- [ ] 考虑增加数据版本控制字段
---
## 四、附录
### 4.1 相关文件
- 业务表SQL: `sql/bid_tables.sql`
- 物料扩展SQL: `sql/20260527/01_material_extension.sql`
- 开发方案: `doc/福安德智慧报价平台-完整开发方案.md`
- 物料开发文档: `doc/智采系统-物料信息模块开发文档.md`
### 4.2 建议补充的通用字段
所有业务表建议补充以下字段:
```sql
-- 数据版本控制
version INT DEFAULT 1 COMMENT '数据版本号',
-- 扩展字段(预留)
ext_field1 VARCHAR(500) COMMENT '扩展字段1',
ext_field2 VARCHAR(500) COMMENT '扩展字段2',
-- 数据隔离
dept_id BIGINT COMMENT '所属部门ID',
-- 删除标记(物理删除场景)
delete_time DATETIME COMMENT '删除时间',
delete_by VARCHAR(64) COMMENT '删除人',
```
---
*报告生成完成,建议根据以上分析逐步优化数据库结构。*