Apple经销商ERP系统 - 数据库设计文档
概述
本数据库设计为Apple经销商ERP系统提供完整的数据存储方案,严格按照数据库设计文档创建系统管理、订单管理、出库查询、发票管理、返利台账、异常工单等核心业务模块。
数据库结构
1. 系统管理模块
系统用户表(t_sys_user)
- 存储系统用户基本信息
- 包含用户状态和登录信息
- 支持用户权限管理
系统角色表(t_sys_role)
- 存储系统角色信息
- 包含角色状态和权限
- 支持角色权限管理
用户角色关联表(t_sys_user_role)
- 存储用户和角色的关联关系
- 支持多对多关系
- 实现用户权限分配
系统菜单表(t_sys_menu)
- 存储系统菜单信息
- 包含菜单层级和权限标识
- 支持动态菜单管理
角色菜单关联表(t_sys_role_menu)
- 存储角色和菜单的关联关系
- 支持角色权限控制
- 实现菜单权限管理
字典类型表(t_sys_dict_type)
- 存储字典类型信息
- 支持系统配置管理
- 实现数据字典功能
字典项表(t_sys_dict_item)
- 存储字典项信息
- 关联字典类型
- 支持配置项管理
系统日志表(t_sys_log)
- 存储系统操作日志
- 包含用户操作记录
- 支持审计和监控
2. 订单管理模块
订单主表(t_order_main)
- 存储订单基本信息
- 包含经销商信息、订单状态、金额等
- 支持返利计算和数据验证
订单商品明细表(t_order_item)
- 存储订单商品明细
- 包含产品信息、数量、价格等
- 支持明细金额计算
3. 出库管理模块
出库主表(t_delivery_main)
- 存储出库单基本信息
- 关联订单信息
- 支持多种出库状态
出库商品明细表(t_delivery_item)
- 存储出库商品明细
- 包含出库数量、价格等
- 支持出库金额计算
4. 发票管理模块
发票主表(t_invoice_main)
- 存储发票基本信息
- 支持普通发票和专用发票
- 包含税率和税额计算
发票商品明细表(t_invoice_item)
- 存储发票商品明细
- 支持税率计算
- 包含含税金额
5. 返利管理模块
返利台账明细表(t_rebate_detail)
- 存储返利明细信息
- 支持新增和扣减操作
- 包含返利计算状态
6. 异常工单模块
异常工单表(t_exception_workorder)
- 存储异常工单信息
- 支持多种异常类型
- 包含严重程度和状态管理
异常工单处理日志表(t_exception_workorder_log)
- 存储工单处理日志
- 记录处理过程和结果
- 支持附件管理
7. 基础信息模块
经销商信息表(t_dealer_info)
- 存储经销商基本信息
- 包含资质审核和合作状态
- 支持返利金额统计
产品信息表(t_product_info)
- 存储产品基本信息
- 包含价格和销售状态
- 支持返利标识
脚本文件说明
系统管理脚本
1. 系统管理表创建脚本
-
文件:
01_create_system_tables.sql - 功能: 创建系统管理相关的数据库表
-
包含表:
-
t_sys_user- 系统用户表 -
t_sys_role- 系统角色表 -
t_sys_user_role- 用户角色关联表 -
t_sys_menu- 系统菜单表 -
t_sys_role_menu- 角色菜单关联表 -
t_sys_dict_type- 字典类型表 -
t_sys_dict_item- 字典项表 -
t_sys_log- 系统日志表
-
2. 系统管理表索引创建脚本
-
文件:
02_create_system_indexes.sql - 功能: 为系统管理表创建索引和外键约束
-
包含内容:
- 查询优化索引
- 复合查询索引
- 外键约束
- 唯一约束索引
3. 系统基础数据插入脚本
-
文件:
03_insert_system_data.sql - 功能: 插入系统初始化基础数据
-
包含数据:
- 系统用户数据(admin、operator、auditor)
- 系统角色数据(ADMIN、OPERATOR、AUDITOR、DEALER_MANAGER)
- 用户角色关联数据
- 系统菜单数据
- 角色菜单关联数据
- 字典类型和字典项数据
业务管理脚本
4. 业务表创建脚本
-
文件:
01_create_business_tables.sql - 功能: 创建业务管理相关的数据库表
-
包含表:
-
t_order_main- 订单主表 -
t_order_item- 订单商品明细表 -
t_delivery_main- 出库主表 -
t_delivery_item- 出库商品明细表 -
t_invoice_main- 发票主表 -
t_invoice_item- 发票商品明细表 -
t_rebate_detail- 返利台账明细表 -
t_exception_workorder- 异常工单表 -
t_exception_workorder_log- 异常工单处理日志表 -
t_dealer_info- 经销商信息表 -
t_product_info- 产品信息表
-
5. 业务表索引创建脚本
-
文件:
02_create_business_indexes.sql - 功能: 为业务管理表创建索引
-
包含内容:
- 主键索引、唯一索引、普通索引
- 复合索引优化查询性能
- 支持高效的数据检索
6. 业务测试数据插入脚本
-
文件:
03_insert_business_data.sql - 功能: 插入业务测试数据
-
包含数据:
- 经销商数据(5个经销商)
- 产品数据(15个Apple产品)
- 订单数据(10个订单及明细)
- 出库数据(8个出库单及明细)
- 发票数据(8张发票及明细)
- 返利数据(11条返利记录)
- 异常工单数据(4个异常工单及处理日志)
7. 业务数据库初始化脚本
-
文件:
00_setup_business_database.sql - 功能: 按顺序执行所有业务数据库脚本
-
执行顺序:
- 创建业务表
- 创建业务索引
- 插入业务测试数据
执行顺序
系统管理数据库初始化
请按照以下顺序执行脚本:
-
01_create_system_tables.sql- 创建系统表结构 -
02_create_system_indexes.sql- 创建系统表索引和约束 -
03_insert_system_data.sql- 插入系统基础数据
业务管理数据库初始化
请按照以下顺序执行脚本:
-
01_create_business_tables.sql- 创建业务表结构 -
02_create_business_indexes.sql- 创建业务表索引 -
03_insert_business_data.sql- 插入业务测试数据 -
06_insert_product_dealer_permissions.sql- 插入产品管理和经销商管理权限
或者直接执行:
-
00_setup_business_database.sql- 自动执行业务数据库初始化(包含权限配置)
权限管理脚本
产品管理和经销商管理权限脚本 (06_insert_product_dealer_permissions.sql)
功能: 配置产品管理和经销商管理相关菜单和权限
包含内容:
- 产品管理按钮权限(基于现有产品管理主菜单)
- 经销商管理按钮权限(基于现有经销商管理主菜单)
- 为ADMIN角色分配产品管理和经销商管理权限
- 权限验证查询
产品管理权限列表:
-
product:list- 产品查询 -
product:add- 产品新增 -
product:update- 产品修改 -
product:delete- 产品删除 -
product:detail- 产品详情 -
product:batchDelete- 产品批量删除 -
product:updateStatus- 产品状态修改 -
product:updateRebateFlag- 产品返利标识修改
经销商管理权限列表:
-
dealer:list- 经销商查询 -
dealer:add- 经销商新增 -
dealer:update- 经销商修改 -
dealer:delete- 经销商删除 -
dealer:detail- 经销商详情 -
dealer:batchDelete- 经销商批量删除 -
dealer:updateStatus- 经销商合作状态修改 -
dealer:audit- 经销商资质审核
说明:
- 基于
03_insert_system_data.sql中已存在的产品管理和经销商管理主菜单 - 只添加按钮级别的权限,不重复创建主菜单
- 所有权限都会自动分配给ADMIN角色
核心特性
1. 完整的业务流程
- 订单 → 出库 → 发票 → 返利
- 异常工单处理流程
- 数据验证和状态管理
2. 丰富的测试数据
- 5个经销商(一级和二级)
- 15个Apple产品
- 10个订单及明细
- 8个出库单及明细
- 8张发票及明细
- 11条返利记录
- 4个异常工单及处理日志
3. 优化的索引设计
- 主键索引、唯一索引、普通索引
- 复合索引优化查询性能
- 支持高效的数据检索
4. 数据一致性
- 业务编号唯一性约束
- 状态字段标准化
- 金额字段精度控制
数据关系
订单流程
- 创建订单 → 订单明细
- 确认订单 → 生成出库单
- 出库完成 → 生成发票
- 发票开具 → 计算返利
数据关联
- 订单 → 出库单(一对多)
- 出库单 → 发票(一对一)
- 经销商 → 订单(一对多)
- 产品 → 订单明细(一对多)
- 异常工单 → 处理日志(一对多)
性能优化
索引策略
- 主键使用自增ID
- 业务编号使用唯一索引
- 查询字段建立复合索引
- 状态字段建立普通索引
查询优化
- 分页查询优化
- 状态查询优化
- 时间范围查询优化
- 金额范围查询优化
扩展性设计
表结构扩展
- 预留扩展字段
- 支持自定义字段
- 版本控制支持
业务扩展
- 支持多经销商管理
- 支持多种产品类型
- 支持多种支付方式
- 支持多种配送方式
默认用户账号
系统创建了以下默认用户账号:
| 用户名 | 密码 | 角色 | 说明 |
|---|---|---|---|
| admin | admin123 | 系统管理员 | 拥有所有权限 |
| operator | operator123 | 运营人员 | 拥有业务操作权限 |
| auditor | auditor123 | 审核人员 | 拥有审核权限 |
测试数据说明
经销商数据
- 5个经销商(3个一级,2个二级)
- 涵盖不同地区和合作状态
- 包含完整的资质信息
产品数据
- 15个Apple产品
- 涵盖iPhone、iPad、MacBook、Apple Watch
- 包含不同规格和价格
订单数据
- 10个订单
- 涵盖不同状态和类型
- 包含完整的订单明细
出库数据
- 8个出库单
- 关联对应订单
- 包含出库明细
发票数据
- 8张发票
- 支持含税金额计算
- 包含发票明细
返利数据
- 11条返利记录
- 支持新增和扣减操作
- 包含返利计算状态
异常工单数据
- 4个异常工单
- 涵盖不同异常类型和严重程度
- 包含处理日志
注意事项
- 所有金额字段使用decimal(18,2)类型
- 时间字段统一使用datetime类型
- 状态字段使用tinyint类型
- 字符串字段根据实际需要设置长度
- 所有表都包含创建和更新信息
- 重要字段不允许为空
- 业务编号保持唯一性
- 不创建外键约束,通过应用层保证数据一致性
- 所有脚本都包含错误处理,可以重复执行
- 密码已使用BCrypt加密存储
- 所有表都包含软删除标志(del_flag)
- 索引已优化,支持高效查询
数据库要求
- MySQL 8.0+
- 字符集: utf8mb4
- 排序规则: utf8mb4_unicode_ci
- 存储引擎: InnoDB
使用说明
- 按照脚本顺序执行数据库初始化
- 确保MySQL版本8.0或以上
- 使用utf8mb4字符集
- 建议使用InnoDB存储引擎
- 根据实际需要调整测试数据