README.md 10.9 KB

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
  • 功能: 按顺序执行所有业务数据库脚本
  • 执行顺序:
    1. 创建业务表
    2. 创建业务索引
    3. 插入业务测试数据

执行顺序

系统管理数据库初始化

请按照以下顺序执行脚本:

  1. 01_create_system_tables.sql - 创建系统表结构
  2. 02_create_system_indexes.sql - 创建系统表索引和约束
  3. 03_insert_system_data.sql - 插入系统基础数据

业务管理数据库初始化

请按照以下顺序执行脚本:

  1. 01_create_business_tables.sql - 创建业务表结构
  2. 02_create_business_indexes.sql - 创建业务表索引
  3. 03_insert_business_data.sql - 插入业务测试数据
  4. 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. 数据一致性

  • 业务编号唯一性约束
  • 状态字段标准化
  • 金额字段精度控制

数据关系

订单流程

  1. 创建订单 → 订单明细
  2. 确认订单 → 生成出库单
  3. 出库完成 → 生成发票
  4. 发票开具 → 计算返利

数据关联

  • 订单 → 出库单(一对多)
  • 出库单 → 发票(一对一)
  • 经销商 → 订单(一对多)
  • 产品 → 订单明细(一对多)
  • 异常工单 → 处理日志(一对多)

性能优化

索引策略

  • 主键使用自增ID
  • 业务编号使用唯一索引
  • 查询字段建立复合索引
  • 状态字段建立普通索引

查询优化

  • 分页查询优化
  • 状态查询优化
  • 时间范围查询优化
  • 金额范围查询优化

扩展性设计

表结构扩展

  • 预留扩展字段
  • 支持自定义字段
  • 版本控制支持

业务扩展

  • 支持多经销商管理
  • 支持多种产品类型
  • 支持多种支付方式
  • 支持多种配送方式

默认用户账号

系统创建了以下默认用户账号:

用户名 密码 角色 说明
admin admin123 系统管理员 拥有所有权限
operator operator123 运营人员 拥有业务操作权限
auditor auditor123 审核人员 拥有审核权限

测试数据说明

经销商数据

  • 5个经销商(3个一级,2个二级)
  • 涵盖不同地区和合作状态
  • 包含完整的资质信息

产品数据

  • 15个Apple产品
  • 涵盖iPhone、iPad、MacBook、Apple Watch
  • 包含不同规格和价格

订单数据

  • 10个订单
  • 涵盖不同状态和类型
  • 包含完整的订单明细

出库数据

  • 8个出库单
  • 关联对应订单
  • 包含出库明细

发票数据

  • 8张发票
  • 支持含税金额计算
  • 包含发票明细

返利数据

  • 11条返利记录
  • 支持新增和扣减操作
  • 包含返利计算状态

异常工单数据

  • 4个异常工单
  • 涵盖不同异常类型和严重程度
  • 包含处理日志

注意事项

  1. 所有金额字段使用decimal(18,2)类型
  2. 时间字段统一使用datetime类型
  3. 状态字段使用tinyint类型
  4. 字符串字段根据实际需要设置长度
  5. 所有表都包含创建和更新信息
  6. 重要字段不允许为空
  7. 业务编号保持唯一性
  8. 不创建外键约束,通过应用层保证数据一致性
  9. 所有脚本都包含错误处理,可以重复执行
  10. 密码已使用BCrypt加密存储
  11. 所有表都包含软删除标志(del_flag)
  12. 索引已优化,支持高效查询

数据库要求

  • MySQL 8.0+
  • 字符集: utf8mb4
  • 排序规则: utf8mb4_unicode_ci
  • 存储引擎: InnoDB

使用说明

  1. 按照脚本顺序执行数据库初始化
  2. 确保MySQL版本8.0或以上
  3. 使用utf8mb4字符集
  4. 建议使用InnoDB存储引擎
  5. 根据实际需要调整测试数据