整理版数据与接口来源 15

科杰企业级系统:ER 图结构说明

本文档用于说明科杰企业级系统一期核心数据模型之间的主外键关系、聚合中心和 ER 图绘制思路,便于后续把 11 一期核心数据库字段详细版 落成正式 ER 图。

更新时间:2026/03/26 13:41标签:ER 图 / 主外键 / 聚合关系

科杰企业级系统(ER 图结构说明)

1. 文档定位

本文档用于说明科杰企业级系统一期核心数据模型之间的主外键关系、聚合中心和 ER 图绘制思路,便于后续把 11-一期核心数据库字段详细版 落成正式 ER 图。

2. 一期 ER 结构总思路

一期 ER 图建议围绕 4 个中心对象组织:

  1. 用户与组织
  2. 标准设计资产
  3. 设备主档
  4. 业务闭环对象(台账 / 售后 / 合规)

其中:

  • 设备主档 是运行期中心;
  • 标准设计资产 是交付前中心;
  • 用户与组织 是权限与责任链中心;
  • 台账、售后、合规 是围绕设备主档展开的交易域。

3. ER 核心关系图谱(文字版)

3.1 组织与权限主线

  • company 1:N department
  • company 1:N user_account
  • department 1:N user_account
  • user_account N:M role 通过 user_role_rel
  • role N:M permission_action 通过 role_permission_rel

说明:

  • 这是全系统的权限底座;
  • 所有业务表的 created_by / updated_by / owner_id / approver_id 最终都关联 user_account.id

3.2 标准设计资产主线

  • product_model 1:N electrical_scheme
  • electrical_scheme 1:N drawing_asset
  • drawing_asset 1:N drawing_version
  • electrical_scheme 1:N plc_program
  • plc_program 1:N plc_program_version
  • electrical_scheme 1:N bom_template
  • bom_template 1:N bom_item
  • electrical_scheme / drawing_asset / plc_program / bom_template 1:N engineering_change

说明:

  • 一个机型可以对应多个方案;
  • 一个方案对应多个图纸、PLC、BOM;
  • 所有标准资产都通过版本化方式管理。

3.3 设备主档主线

  • equipment 1:1 equipment_archive
  • equipment 1:N archive_document
  • equipment 1:N equipment_version_binding
  • equipment 1:N delivery_package

其中:

  • equipment_version_binding 关联到:
    • electrical_scheme
    • drawing_version
    • plc_program_version
    • bom_template

说明:

  • 设备不是直接复制一整套设计资产,而是“绑定”当时交付所用版本;
  • 这样后续能追溯每台设备到底用了哪个方案、哪个图纸版本、哪个 PLC 版本、哪个 BOM 版本。

3.4 台账闭环主线

  • equipment 1:N inspection_task
  • inspection_task 1:N inspection_daily
  • inspection_task 1:N inspection_monthly
  • inspection_task 1:N maintenance_record
  • inspection_task 1:N annual_self_check
  • inspection_daily 1:N inspection_daily_item
  • inspection_monthly (可扩展 1:N monthly_item,若后续单独建表)
  • equipment 1:N rectification_task

说明:

  • 任务是驱动层;
  • 记录是事实层;
  • 整改是闭环层。

3.5 售后服务主线

  • equipment 1:N service_work_order
  • customer 1:N service_work_order
  • service_work_order 1:N service_dispatch
  • service_work_order 1:N service_visit_record
  • service_work_order 1:N service_part_usage
  • service_work_order 1:1 / 1:N service_feedback

说明:

  • 工单是售后中心聚合根;
  • 派工、服务记录、配件使用、客户反馈都围绕工单。

3.6 合规主线

  • equipment 1:N compliance_case
  • equipment 1:N inspection_status_log
  • equipment 1:N export_package

说明:

  • 合规风险和状态变化都围绕设备;
  • 导出包本质上也是按设备聚合资料。

3.7 附件与审计横切主线

  • 任意业务表 1:N attachment_file(通过 biz_type + biz_id
  • 任意业务表 1:N signature_record(通过 biz_type + biz_id
  • 任意业务动作 1:N operation_log

说明:

  • 附件、签字、审计是横切能力,不归属于某一个业务域。

4. 关键聚合根建议

聚合根 A:equipment

设备是最关键聚合根,关联:

  • 档案
  • 台账
  • 售后
  • 合规
  • 资料包
  • 设计资产绑定关系

聚合根 B:electrical_scheme

标准方案是设计资产中心,关联:

  • 图纸
  • PLC
  • BOM
  • 变更
  • 最终设备绑定

聚合根 C:service_work_order

工单是售后服务中心,关联:

  • 派工
  • 服务记录
  • 配件使用
  • 客户反馈

聚合根 D:inspection_task

任务是台账执行中心,驱动:

  • 日检
  • 月检
  • 维保
  • 年度自检
  • 定检准备

5. 主外键关系建议

5.1 强外键建议

以下关系建议数据库层明确建立 FK 或至少强一致逻辑约束:

  • department.company_id -> company.id
  • user_account.company_id -> company.id
  • user_role_rel.user_id -> user_account.id
  • user_role_rel.role_id -> role.id
  • electrical_scheme.model_id -> product_model.id
  • drawing_asset.scheme_id -> electrical_scheme.id
  • drawing_version.drawing_id -> drawing_asset.id
  • plc_program.scheme_id -> electrical_scheme.id
  • plc_program_version.program_id -> plc_program.id
  • bom_template.scheme_id -> electrical_scheme.id
  • bom_item.bom_id -> bom_template.id
  • equipment.model_id -> product_model.id
  • equipment_archive.equipment_id -> equipment.id
  • archive_document.equipment_id -> equipment.id
  • inspection_task.equipment_id -> equipment.id
  • inspection_daily.task_id -> inspection_task.id
  • rectification_task.equipment_id -> equipment.id
  • service_work_order.equipment_id -> equipment.id
  • compliance_case.equipment_id -> equipment.id

5.2 弱关系建议

以下关系可逻辑约束,不一定强 FK:

  • attachment_file.biz_id
  • signature_record.biz_id
  • operation_log.biz_id

原因:

  • 它们面向多业务类型复用;
  • biz_type + biz_id 更灵活。

6. ER 分图建议

正式画 ER 图时,不建议一张图画完全部对象,建议拆成 5 张子图:

图 1:组织与权限图

  • company
  • department
  • user_account
  • role
  • permission_action
  • user_role_rel
  • role_permission_rel

图 2:标准设计资产图

  • product_model
  • electrical_scheme
  • drawing_asset
  • drawing_version
  • plc_program
  • plc_program_version
  • bom_template
  • bom_item
  • engineering_change

图 3:设备主档与档案图

  • equipment
  • equipment_archive
  • archive_document
  • equipment_version_binding
  • delivery_package

图 4:台账与整改图

  • inspection_task
  • inspection_daily
  • inspection_daily_item
  • inspection_monthly
  • maintenance_record
  • annual_self_check
  • rectification_task

图 5:售后、合规、附件审计图

  • service_work_order
  • service_dispatch
  • service_visit_record
  • service_part_usage
  • service_feedback
  • compliance_case
  • inspection_status_log
  • export_package
  • attachment_file
  • signature_record
  • operation_log

7. 绘图重点提醒

7.1 不要把所有状态都堆在设备表里

设备表保留核心状态; 状态历史放到日志或快照表; 复杂合规风险单独建表。

7.2 不要让设计资产和设备形成强耦合复制

设备绑定版本,而不是复制一整套设计资产字段。

7.3 不要把附件散落到各表

附件统一抽象能极大减少后期系统复杂度。

7.4 任务、记录、整改必须分层

否则后续补录、逾期、问题闭环都会很乱。

8. 结论

一期 ER 设计必须围绕两个中心展开:

  • 交付前的标准设计资产中心
  • 交付后的设备主档中心

所有台账、售后、合规、导出,都应围绕设备主档展开; 所有图纸、PLC、BOM、变更,都应围绕标准方案展开。

只要这两个中心立住,整套系统的数据结构就会稳定很多。