项目设备台账project_device_binding
Knife4j 接口文档评审版 · v0.2
Data table prototype

项目和设备,
用一张表对应起来。

一行就是一个项目与一个设备的绑定关系。项目代表产品/型号,设备沿用 SparkLink 的节点定义;不同项目通过独立 CAN 总线隔离。

—产品/型号
—当前查询结果
—状态为 deployed
项目内唯一允许跨项目复用
项目设备绑定表
数据库表:project_device_binding · 一行对应一个项目设备关系
请输入 API Key 后连接后端…
关系 ID项目产品型号CAN 总线设备类型节点号设备序列号协议版本状态操作
PDB-0001PROJECT-ENGINE-A发动机一型CAN0发动机控制器engine_controller0x02ECU-A-001SparkLink/main已部署
PDB-0002PROJECT-ENGINE-A发动机一型CAN0阀组控制器valve_group_controller0x03VALVE-A-001SparkLink/main已部署
PDB-0003PROJECT-ENGINE-A发动机一型CAN0氧泵电机控制器oxidizer_pump_controller0x04OXP-A-001SparkLink/main已部署
PDB-0004PROJECT-ENGINE-B发动机二型CAN1发动机控制器engine_controller0x02ECU-B-001SparkLink/main已部署
PDB-0005PROJECT-ENGINE-B发动机二型CAN1阀组控制器valve_group_controller0x03VALVE-B-001SparkLink/main已部署
PDB-0006PROJECT-ENGINE-B发动机二型CAN1热电偶采集板thermocouple_collector0x0DTC-B-001SparkLink/main待部署
没有符合条件的绑定记录。
显示 0 条记录项目内唯一键:(project_code, device_type)
Table design

这张表怎么对应数据库

项目和设备信息放在一张关系表里,项目代码和设备类型共同确定一条绑定关系。

project_device_binding

建议的字段和页面列一一对应。

字段类型用途
idbigint PK关系记录唯一 ID
project_codevarchar产品/型号项目编码
product_modelvarchar项目展示名称
can_busvarchar物理 CAN 总线标识
device_typevarchar设备类型编码
node_idtinyintSparkLink 节点号
device_serialvarchar实物设备序列号
protocol_profilevarchar协议定义版本/分支
statusenumdeployed / planned / retired
UNIQUE (project_code, device_type)

项目和设备如何区分

  • 项目 A 和项目 B 可以都使用设备类型 engine_controller。
  • 因为两者在不同 CAN 总线,节点号 0x02 可以复用。
  • 同一个项目内,设备类型最多一条,所以节点号不会冲突。
  • 项目标识只在部署台账中维护,运行时不放进 CAN 帧,也不做项目校验。
Database draft

建表草案

后续如果确认这个模型,再把 SQL 和实际后端字段定稿。

project_device_binding.sql
CREATE TABLE project_device_binding (
  id               BIGINT PRIMARY KEY,
  project_code     VARCHAR(64) NOT NULL,
  product_model    VARCHAR(128) NOT NULL,
  can_bus          VARCHAR(32) NOT NULL,
  device_type      VARCHAR(64) NOT NULL,
  node_id          SMALLINT UNSIGNED NOT NULL,
  device_serial    VARCHAR(128) NOT NULL,
  protocol_profile VARCHAR(128) NOT NULL,
  status           VARCHAR(16) NOT NULL DEFAULT 'planned',
  created_at       TIMESTAMP NOT NULL,
  updated_at       TIMESTAMP NOT NULL,
  UNIQUE (project_code, device_type),
  UNIQUE (project_code, node_id)
);
当前边界:这张表用于部署台账和查询。由于运行时不校验项目,实际接线必须保证一个 CAN 总线只属于一个项目。