硕创科技 · 一物一码选型避坑知识库山东硕创信息科技有限公司 · 服务范围:全国
首页 › 选型避坑知识库 › 编码规则

一物一码编码规则设计:码段、校验、派生、换版

山东硕创信息科技有限公司 · · 约 9 分钟
核心结论
编码规则是采集系统的地基:码段结构、校验位、层级派生、换版策略四件事在方案阶段定死,上线后再改等于重做。
码段与层级的关系
码段结构决定层级能否派生
编码规则要能回答的判断
长度、校验、换版

一、码段结构

一物一码的码通常由几段拼成,常见结构:

段含义长度(示例)
版本位规则版本,便于换版共存1
厂商/企业码标识生产企业4-6
产品码SKU 或登记证号6-10
批次生产批号或日期6-8
流水号批内序号(不重复)6-10
校验位防错读1-2

字段长度要一次定死:长度可变是后期所有麻烦的根源。

二、校验位:最便宜的防错

加一位校验,能挡掉大部分误读与手输错误。常见做法是模 10 或模 43 校验,规则要在《数据字典》里写清。

没有校验位的码,错一位也能入库,等到对账才发现。

三、层级派生:独立生成还是上级派生

方式优点缺点
独立生成互不影响,生成简单关系要靠扫描建立,工位多
上级派生可由上级码算出下级范围规则复杂,改版成本高

多数场景用独立生成 + 扫描关联;只有“箱内码不可扫、只能靠推算”的场景才用派生。

四、换版策略

规则一定会变(监管、客户、码制升级)。设计时留两样东西:

五、一份《数据字典》该写什么

  1. 码段结构表(字段、长度、取值规则)
  2. 校验算法与示例
  3. 层级关系定义(哪级对哪级、数量规则)
  4. 上传字段映射(平台字段 ← 本地字段)
  5. 异常码与处理约定

两页纸,够用。没有这份文件的项目,后期对接一定反复。

七、码段设计的三个常见错误

错误一:长度可变

为了“以后扩展”留了变长字段,结果所有解析都要做兼容,越往后越乱。长度一次定死,扩展用版本位。

错误二:把批次写进流水号

批次与流水混在一段,换批时流水无法归零,统计和追溯都要绕。

错误三:没有版本位

规则一改,新旧码无法共存,只能一次性切换,切换期必然停线。

三个错误的共同点:都是“为了省事”造成的,代价是后期无法演进。

八、一串码的完整拆解

假设某产品的码为 1-37001-010203-260315-000123-7,拆开是这样:

段取值含义
版本位1规则第 1 版
企业码37001生产企业标识
产品码010203SKU 内部编号
批次2603152026 年 3 月 15 日生产
流水号000123该批第 123 件
校验位7前五段算出的校验值

这串码的价值在于可读、可查、可扩展:人能看懂批次,系统能定位产品,换版只改版本位。

九、校验算法示例

常见做法是加权求和取模:把前五段按位乘权重(如 3、1 交替),求和后对 10 取余,用 10 减余数得到校验位。

示例:数字串求和后余数为 3,则校验位为 7。规则简单到能在打印机、PDA、服务端各实现一遍,且结果一致——这就是校验位的意义:任何一端算错,立即能被发现。

算法要写进《数据字典》,附三个正例与三个反例,供双方联调时对拍。

验证说明:本文的判断项均可现场核对(看系统架构、看交付清单、看合同条款)。文中涉及的行业数据为公开资料整理,具体数字以最新公开口径为准;我们不在此评价任何具体服务商。

常见问题

码段长度能改吗?

上线前能改,上线后基本不能——已赋码的产品不能重贴,已上传的数据不能批量改。

校验位一定要加吗?

建议加。成本几乎为零,能挡掉大部分误读。

独立生成和派生怎么选?

能扫就用独立生成;不能扫(如箱内不可见)才用派生。

换版要不要停机?

有版本位就不用:新旧规则并存,按订单切换。