Skip to content

数据库设计

**本文引用的文件** - [device.sql](file://docs/ddl/device.sql) - [store.sql](file://docs/ddl/store.sql) - [workflow.sql](file://docs/ddl/workflow.sql) - [README.md](file://lemes-cloud/lemes-business-devicemate/README.md) - [AGENTS.md](file://lemes-cloud/lemes-business-devicemate/AGENTS.md) - [FrameworkController.java](file://lemes-cloud/lemes-framework/lemes-framework-datasource/src/main/java/com/lenovo/lemes/datasource/api/FrameworkController.java) - [OpenApiController.java](file://lemes-cloud/lemes-framework/lemes-framework-datasource/src/main/java/com/lenovo/lemes/datasource/api/OpenApiController.java) - [DataBaseAdapterService.java](file://lemes-cloud/lemes-framework/lemes-framework-datasource/src/main/java/com/lenovo/lemes/datasource/adapter/DataBaseAdapterService.java) - [MaintenancePlansMapper.java](file://lemes-job-devicemate/lemes-job-devicemate-executor/src/main/java/com/lenovo/lemes/job/devicemate/executor/mapper/device/MaintenancePlansMapper.java)

目录

  1. 简介
  2. 项目结构
  3. 核心组件
  4. 架构概览
  5. 详细组件分析
  6. 依赖分析
  7. 性能考量
  8. 故障排查指南
  9. 结论
  10. 附录

简介

本文件为 DeviceMate 项目的数据库设计文档,聚焦设备管理相关的数据库表结构与业务实体,涵盖设备台账、维护计划、工单流程、库存管理等核心领域。文档从数据模型、关系与索引策略、规范化与性能优化、扩展性规划、迁移与一致性保障等方面进行系统化阐述,并提供 DDL 脚本与数据字典参考,帮助数据库管理员与后端开发者高效落地与运维。

项目结构

DeviceMate 采用多模块微服务架构,数据库层面以“设备”“仓储”“流程”三大域划分,分别对应设备域的台账与维护、仓储域的库存与出入库、流程域的审批与任务编排。各服务通过动态数据源路由实现按租户/业务域隔离的数据访问。

图表来源

章节来源

核心组件

本节梳理与设备管理密切相关的数据库表与职责边界,重点覆盖以下主题:

  • 设备域:线体/制程/产品线/机型、库存台账与明细、盘点与KPI统计
  • 仓储域:物料主数据、库区库位、入库单据与明细、胶水场景、个人借还/调拨/报损、挪用归还
  • 流程域:流程配置、节点配置、流程日志与审计、用户与角色

章节来源

架构概览

DeviceMate 的数据库层由 PostgreSQL 提供支撑,通过动态数据源框架实现多租户/多域隔离访问。框架层提供数据源枚举与适配器,支持不同数据库类型的差异化处理;业务层通过 MyBatis-Plus Mapper 访问具体域的数据源。

图表来源

详细组件分析

设备域:线体/制程/产品线/机型

  • 线体(line):承载产线信息,含工厂/产线/制程/有效性等字段,支持逻辑删除。
  • 制程(process):定义制程维度,用于设备与工艺关联。
  • 产品线(product_line):产品线维度,支撑库存与统计。
  • 机型(product_model):机型维度,绑定产品线与品牌。

图表来源

章节来源

设备域:库存台账与明细

  • 库存台账(stock_main):按台账维度聚合库存数量,含仓库/库区/库位/物料/产品线等。
  • 库存明细(stock_detail):按序列号/箱号/包装等细粒度记录,支持有效期、寿命数、冻结数量等。
  • 盘点单(stock_check_orders)与明细(stock_check_detail):支持盘点执行、差异记录与结果入账。
  • KPI与价值统计(stock_kpi_statistics/stock_value_statistics):按工厂/仓库/产品线统计成本与产出。

图表来源

章节来源

仓储域:物料主数据与安全库存

  • 物料主数据(part_main):物料编码/名称/规格/UOM/控制类型/价格/有效期/寿命等关键属性。
  • 安全库存(safe_stock):按工厂/仓库/物料设定上下限与安全库存阈值。

图表来源

章节来源

仓储域:库区库位与库存结构

  • 库区(store_area):仓库下的库区划分,含类型与位置。
  • 库位(store_bin):库区下的具体储位,含类型与位置。
  • 通过上述层级与库存台账/明细形成完整的仓储定位与数量管理。

图表来源

章节来源

仓储域:入库与胶水场景

  • 入库单据:入库单(store_in_orders)与明细(store_in_order_detail),支持序列号/箱号/包装/单价/有效期/寿命数/PO/PR/借用单等。
  • 锡膏胶水场景:基础属性(paste_glue_base)、入库(paste_glue_in_order)、入库明细(paste_glue_in_order_detail)、库存(paste_glue_store)、过站记录(paste_glue_station_records)。

图表来源

章节来源

仓储域:个人借还/调拨/报损与挪用归还

  • 个人借还:申请/借用订单(personal_apply_borrow_orders)与明细(personal_apply_borrow_order_detail)。
  • 个人归还:归还订单(personal_part_return_orders)与明细(personal_part_return_order_detail)。
  • 个人调拨:调拨订单(personal_transfer_orders)与明细(personal_transfer_order_detail)。
  • 个人报损:报损订单(personal_report_damage_orders)与明细(personal_report_damage_order_detail)。
  • 个人物料清单(personal_part_store):按用户/仓库/库区/库位/物料聚合持有数量与有效期。
  • 挪用归还记录(store_borrow_give_back_record):跨产线/仓库的物料挪用与归还追踪。

图表来源

章节来源

流程域:流程配置与审计

  • 流程配置(flow_business_config/flow_node_config):业务码到流程图映射与节点顺序。
  • 流程日志与审计(flow_log/flow_audit_log):流程推进与审批轨迹。
  • 用户与角色(flow_user/flow_user_role):用户、角色与层级(工厂/部门)。
  • 事件与资源(flw_* 表族):Flowable 引擎的事件、通道、批处理等元数据。

图表来源

章节来源

工单流程:设备维护与维修

  • 维护计划:通过作业调度器访问设备域数据源,执行周期性维护任务。
  • 工单流程:结合流程域的节点配置与审计日志,实现审批与执行闭环。

图表来源

章节来源

依赖分析

  • 服务间依赖:设备域与仓储域通过物料主数据与库存台账建立强关联;流程域为设备/仓储相关单据提供审批与审计能力。
  • 数据依赖:个人借还/调拨/报损均依赖个人物料清单(PPS)作为唯一关联;胶水场景依赖基础属性与入库单据形成库存。
  • 外部依赖:动态数据源框架负责多租户/多域隔离;Flowable 引擎提供流程编排能力。

图表来源

章节来源

性能考量

  • 索引策略
    • 统计表(part_cost_statistics/stock_kpi_statistics):对(id)建立索引,提升聚合查询性能。
    • 个人物料清单(personal_part_store):对(user_no)建立索引,加速用户资产查询。
    • 报损/调拨/归还单据:对(order_no)建立索引,提升单据检索效率。
  • 查询模式
    • 设备域:按工厂/产品线/机型维度的聚合统计,建议使用物化视图或定期汇总表。
    • 仓储域:高频的库存明细与出入库明细,建议按仓区/库位/物料维度分区或分表。
  • 写入优化
    • 入库/出库/调拨批量写入,减少事务粒度;对序列(seq)设置合理上限,避免溢出。
  • 缓存与异步
    • 常用字典(如控制类型/ABC分类)可缓存;流程日志与审计可异步落库。

故障排查指南

  • 数据源枚举
    • 通过框架控制器列举可用数据源,确认当前主数据源与租户映射。
  • 表结构查询
    • 通过开放接口查询指定数据源下的表结构,辅助诊断字段缺失或版本不一致问题。
  • 数据库类型适配
    • 适配器根据驱动名区分数据库类型,确保 SQL 语法兼容性。
  • 日志与审计
    • 流程日志与审计日志记录关键节点与审批轨迹,便于回溯与定位问题。

章节来源

结论

DeviceMate 的数据库设计围绕“设备+仓储+流程”三大域展开,通过清晰的实体划分、严格的逻辑删除与索引策略、以及动态数据源隔离,实现了高内聚低耦合的数据架构。配合流程域的审批与审计能力,能够满足设备管理从台账到工单、从库存到胶水场景的全链路需求。建议在生产环境中持续完善分区/分表、缓存与异步化策略,并加强变更管控与一致性校验。

附录

  • DDL 脚本
  • 数据字典
    • 设备域:线体/制程/产品线/机型、库存台账/明细、盘点与KPI统计
    • 仓储域:物料主数据/安全库存、库区库位、入库单据与明细、胶水场景、个人借还/调拨/报损、挪用归还
    • 流程域:流程配置/节点、流程日志/审计、用户/角色、事件与资源
  • 迁移与一致性
    • 使用 Liquibase/Flyway 等工具管理 DDL 版本;对关键表增加唯一约束与外键,确保数据一致性。
    • 对历史数据进行清洗与归档,保留审计轨迹;对序列进行容量评估与滚动重置策略。