c40b66b703
主要更新: - 添加字段必填/选填设置和空值率配置 - 移除标签管理系统(20条规则无需标签) - 添加组合策略保证唯一性生成 - 添加价格生成器(真实分布/心理定价) - 添加场景化生成器(年龄/数量/评分/折扣/库存) - 更新所有文档移除emoji,使用纯文字 - 更新类型定义和生成逻辑
7.6 KiB
7.6 KiB
核心功能
功能概览
| 功能模块 | 功能点 | 说明 | 优先级 |
|---|---|---|---|
| 字段配置 | 添加字段 | 可视化添加数据字段 | P0 |
| 删除字段 | 删除不需要的字段 | P0 | |
| 字段排序 | 拖拽调整字段顺序 | P1 | |
| 字段命名 | 自定义字段名称 | P0 | |
| 必填/选填设置 | 控制字段是否必填 | P0 | |
| 空值率配置 | 选填字段空值概率 | P1 | |
| 生成器系统 | 生成器选择 | 从生成器库中选择 | P0 |
| 参数配置 | 配置生成器参数 | P0 | |
| 实时预览 | 配置时查看生成结果 | P1 | |
| 数据生成 | 批量生成 | 支持 10000+ 条数据 | P0 |
| 唯一性约束 | 保证字段值唯一 | P1 | |
| 组合策略 | 自动选择生成策略 | P1 | |
| 数据预览 | 生成前预览数据 | P1 | |
| 数据导出 | JSON 导出 | 导出为 JSON 格式 | P0 |
| CSV 导出 | 导出为 CSV 格式 | P0 | |
| SQL 导出 | 导出为 INSERT 语句 | P1 | |
| TypeScript 导出 | 导出为 TS 类型定义 | P2 |
功能详情
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)
SQL 导出
- 导出为 INSERT 语句
- 支持自定义表名
- 自动处理特殊字符转义
TypeScript 导出
- 导出为 TypeScript 类型定义
- 根据字段类型自动推断
- 可选是否包含示例数据