2b84eda24f
- 移除所有文档中的 SQL 和 TypeScript 导出格式引用 - 统一数据导出格式为 JSON 和 CSV - 移除 GeneratorDefinition 中的 icon 字段 - 更新 generatorCategories 配置,包含所有 21 个生成器 - 统一 rule-management.md 和 technical-implementation.md 中的接口名称为 DataRule - 更新 ui-design.md 中的界面设计,移除 SQL/TypeScript 相关元素
239 lines
7.2 KiB
Markdown
239 lines
7.2 KiB
Markdown
# 核心功能
|
||
|
||
## 功能概览
|
||
|
||
| 功能模块 | 功能点 | 说明 | 优先级 |
|
||
| -------------- | ------------- | ------------------ | ------ |
|
||
| **字段配置** | 添加字段 | 可视化添加数据字段 | P0 |
|
||
| | 删除字段 | 删除不需要的字段 | P0 |
|
||
| | 字段排序 | 拖拽调整字段顺序 | P1 |
|
||
| | 字段命名 | 自定义字段名称 | P0 |
|
||
| | 必填/选填设置 | 控制字段是否必填 | P0 |
|
||
| | 空值率配置 | 选填字段空值概率 | P1 |
|
||
| **生成器系统** | 生成器选择 | 从生成器库中选择 | P0 |
|
||
| | 参数配置 | 配置生成器参数 | P0 |
|
||
| | 实时预览 | 配置时查看生成结果 | P1 |
|
||
| **数据生成** | 批量生成 | 支持 10000+ 条数据 | P0 |
|
||
| | 唯一性约束 | 保证字段值唯一 | P1 |
|
||
| | 组合策略 | 自动选择生成策略 | P1 |
|
||
| | 数据预览 | 生成前预览数据 | P1 |
|
||
| **数据导出** | JSON 导出 | 导出为 JSON 格式 | P0 |
|
||
| | CSV 导出 | 导出为 CSV 格式 | P0 |
|
||
|
||
## 功能详情
|
||
|
||
### 1. 字段配置
|
||
|
||
#### 添加字段
|
||
|
||
- 用户点击"添加字段"按钮
|
||
- 弹出生成器选择器
|
||
- 选择生成器后,自动创建新字段
|
||
- 字段默认名称为生成器名称
|
||
|
||
#### 删除字段
|
||
|
||
- 每个字段右侧有删除按钮
|
||
- 点击后弹出确认对话框
|
||
- 确认后删除该字段
|
||
|
||
#### 字段排序
|
||
|
||
- 支持拖拽排序
|
||
- 支持上移/下移按钮
|
||
- 排序后预览数据同步更新
|
||
|
||
#### 字段命名
|
||
|
||
- 字段名称可自定义
|
||
- 支持中英文命名
|
||
- 同一规则内字段名不可重复
|
||
|
||
#### 必填/选填设置
|
||
|
||
- 每个字段可设置为"必填"或"选填"
|
||
- **必填字段**: 100% 生成数据
|
||
- **选填字段**: 可配置空值概率(0-100%)
|
||
- 默认所有字段为必填
|
||
|
||
#### 空值率配置
|
||
|
||
- 选填字段可单独设置空值率
|
||
- 提供预设值:低(20%)、中(50%)、高(80%)
|
||
- 支持滑块精细调节(0-100%)
|
||
- 未单独设置的选填字段使用全局默认空值率
|
||
|
||
---
|
||
|
||
### 2. 生成器系统
|
||
|
||
#### 生成器选择
|
||
|
||
- 以分类方式展示生成器
|
||
- 支持搜索生成器
|
||
- 点击选择后添加到字段配置
|
||
|
||
#### 价格生成器(业务数据)
|
||
|
||
生成真实的价格数据,支持多种策略:
|
||
|
||
| 策略 | 说明 | 适用场景 |
|
||
| -------- | ------------------------------ | ------------ |
|
||
| 真实分布 | 对数正态分布,模拟真实商品价格 | 通用电商场景 |
|
||
| 均匀随机 | 所有价格等概率 | 测试数据 |
|
||
| 心理定价 | .99/.98/.95 结尾 | 营销场景 |
|
||
|
||
**参数配置**:
|
||
|
||
- 最低价/最高价:控制价格区间
|
||
- 小数位数:0(整数)、1、2 位
|
||
- 生成策略:选择分布类型
|
||
|
||
#### 年龄生成器(个人信息)
|
||
|
||
生成真实分布的年龄数据:
|
||
|
||
| 策略 | 说明 | 适用场景 |
|
||
| -------- | ---------------------------- | ------------ |
|
||
| 真实分布 | 正态分布,均值 35,标准差 10 | 通用用户数据 |
|
||
| 人口比例 | 按中国人口年龄比例分布 | 市场调研数据 |
|
||
| 均匀随机 | 所有年龄等概率 | 测试数据 |
|
||
|
||
**参数配置**:
|
||
|
||
- 最小年龄/最大年龄:控制年龄区间
|
||
- 生成策略:选择分布类型
|
||
|
||
#### 数量生成器(业务数据)
|
||
|
||
生成真实分布的数量数据:
|
||
|
||
| 策略 | 说明 | 适用场景 |
|
||
| -------- | --------------------------- | -------- |
|
||
| 真实分布 | 泊松分布,大多数购买 1-3 件 | 零售订单 |
|
||
| 批发模式 | 10-100 之间均匀分布 | 批发订单 |
|
||
| 均匀随机 | 所有数量等概率 | 测试数据 |
|
||
|
||
**参数配置**:
|
||
|
||
- 最小值/最大值:控制数量区间
|
||
- 生成策略:选择分布类型
|
||
|
||
#### 评分生成器(业务数据)
|
||
|
||
生成真实分布的评分数据:
|
||
|
||
| 策略 | 说明 | 适用场景 |
|
||
| -------- | ------------------ | -------- |
|
||
| 真实分布 | 偏态分布,偏向高分 | 电商平台 |
|
||
| 严格评价 | 偏态分布,偏向低分 | 严格评审 |
|
||
| 均匀随机 | 所有评分等概率 | 测试数据 |
|
||
|
||
**参数配置**:
|
||
|
||
- 最低分/最高分:控制评分区间
|
||
- 小数位数:0、1 位
|
||
- 生成策略:选择分布类型
|
||
|
||
#### 折扣生成器(业务数据)
|
||
|
||
生成真实分布的折扣数据:
|
||
|
||
| 策略 | 说明 | 适用场景 |
|
||
| -------- | ------------------------ | -------- |
|
||
| 心理定价 | 常见折扣点(8折、9折等) | 电商促销 |
|
||
| 清仓模式 | 大折扣区间(3-7折) | 清仓处理 |
|
||
| 均匀随机 | 所有折扣等概率 | 测试数据 |
|
||
|
||
**参数配置**:
|
||
|
||
- 最低折扣/最高折扣:控制折扣区间(0.1-0.9)
|
||
- 生成策略:选择分布类型
|
||
|
||
#### 库存生成器(业务数据)
|
||
|
||
生成真实分布的库存数据:
|
||
|
||
| 策略 | 说明 | 适用场景 |
|
||
| -------- | ------------------------ | -------- |
|
||
| 真实分布 | 指数分布,大多数库存较少 | 通用商品 |
|
||
| 热销商品 | 低库存区间(0-50) | 热销商品 |
|
||
| 均匀随机 | 所有库存等概率 | 测试数据 |
|
||
|
||
**参数配置**:
|
||
|
||
- 最小库存/最大库存:控制库存区间
|
||
- 生成策略:选择分布类型
|
||
|
||
#### 参数配置
|
||
|
||
- 每个生成器有对应的参数配置界面
|
||
- 必填参数标记星号
|
||
- 修改参数后实时预览更新
|
||
|
||
#### 实时预览
|
||
|
||
- 配置参数时,右侧预览区实时更新
|
||
- 显示 5-10 条示例数据
|
||
- 帮助用户确认配置是否正确
|
||
|
||
---
|
||
|
||
### 3. 数据生成
|
||
|
||
#### 批量生成
|
||
|
||
- 支持配置生成数量
|
||
- 使用 Web Worker 后台生成
|
||
- 支持 10000+ 条数据
|
||
- 生成过程中显示进度条
|
||
|
||
#### 唯一性约束
|
||
|
||
- 每个字段可单独设置唯一性约束
|
||
- 启用后,该字段生成的值不会重复
|
||
- 如果无法生成唯一值,使用重试机制
|
||
|
||
#### 组合策略(唯一性生成)
|
||
|
||
系统根据数据量自动选择最优生成策略:
|
||
|
||
| 数据量 | 策略 | 说明 |
|
||
| --------- | --------------- | ---------------------- |
|
||
| ≤ 1000 条 | 随机生成 + 重试 | 保证随机性,性能可接受 |
|
||
| > 1000 条 | 索引生成 | 高性能,保证唯一性 |
|
||
|
||
**实现方式**:
|
||
|
||
- 生成器提供两个方法:`generate()` 和 `generateAtIndex()`
|
||
- `generate()`: 随机生成,用于小数据量或非唯一性字段
|
||
- `generateAtIndex()`: 索引生成,用于大数据量唯一性字段
|
||
- 系统根据配置自动选择合适的方法
|
||
|
||
**示例**:
|
||
|
||
- 手机号字段:`generateAtIndex(params, index)` 使用 index 生成唯一手机号
|
||
- 姓名字段:`generateAtIndex(params, index)` 使用 index 组合姓和名
|
||
|
||
#### 数据预览
|
||
|
||
- 生成前可预览数据
|
||
- 显示前 10 条数据
|
||
- 支持分页查看更多数据
|
||
|
||
---
|
||
|
||
### 4. 数据导出
|
||
|
||
#### JSON 导出
|
||
|
||
- 导出为标准 JSON 格式
|
||
- 支持压缩和格式化两种模式
|
||
- 包含字段名和数据
|
||
|
||
#### CSV 导出
|
||
|
||
- 导出为 CSV 格式
|
||
- 自动处理逗号转义
|
||
- 支持中文编码 (UTF-8 with BOM)
|