ERP系统常用字段命名规范及设计深度解析

一、字段分类与设计目标

为系统化理解和设计,先对ERP系统中的常用字段进行分类,明确每类字段的设计目标和注意事项:

字段类别 设计目标 典型字段示例
业务量度字段 表示业务数量、金额、价格等核心数值,需保证数据精度和一致性 numunitPriceamount
价格与税费字段 涉及价格构成及税费计算,需明确含税与不含税含义,确保税务合规 taxRatetaxUnitPricetaxAmount
折扣与成本字段 表示折扣率、折扣金额及成本核算,支持业务核算和财务分析 discountRatediscountAmountcostPricecostAmount
基础标识字段 唯一标识业务对象或批次,保证数据唯一性和可追溯性 orderNobillNobatchNo
时间字段 记录业务事件的时间节点,支持审计和时间序列分析 createDatelastDatedeliveryDate
状态字段 反映业务流程节点状态,支持流程控制及权限判断 auditStatestateaccountingStatedispatchStatestorageState
用户字段 记录操作用户,支持审计和责任归属 creatormodifier
辅助字段 备注及其他补充信息,支持灵活业务需求 remarkspecModelcurrency

二、字段设计详解与规范强化

1. 业务量度字段设计

  • num(数量)

    • 类型推荐:DECIMAL(18,6),支持小数数量(如重量、长度),避免整型带来的精度限制。

    • 业务语义:代表商品或服务的数量,需支持正数、零及部分业务允许的负数(退货)。

    • 约束:数量不能为负数时应在业务层严格校验。

  • unitPrice(单价,不含税)

    • 类型:DECIMAL(18,4)或更高精度,确保财务结算准确。

    • 设计重点:与taxUnitPrice区分,明确不含税价格,便于税务核算。

  • amount(金额,不含税)

    • 计算原则:通常为num * unitPrice,建议在数据库或应用层做精度控制,避免浮点误差。

    • 建议设置触发器或业务逻辑同步更新,避免数据不一致。

2. 税费及价格字段

  • taxRate(税率)

    • 类型:DECIMAL(5,4),如0.1300代表13%。

    • 建议:税率字段应关联税种表,支持多种税率维护,满足不同业务场景需求。

    • 设计说明:税率为比例值,避免使用百分数表达。

  • taxUnitPrice(含税单价)

    • 计算方法:unitPrice * (1 + taxRate),但建议业务系统保存含税单价,避免频繁计算。

    • 业务适用场景:财务账务核算、对外发票等。

  • taxAmount(含税金额)

    • 设计原则:等于amount * (1 + taxRate),通常作为账务金额。

    • 需关注含税金额与不含税金额的差异,避免核算误差。

3. 折扣与成本字段

  • discount(折扣金额)

    • 业务含义:直接减免金额,作用于总货款。

    • 注意:折扣金额不应大于amount

  • discountRate(折扣率)

    • 类型:DECIMAL(5,4),范围[0,1],如0.9表示九折。

    • 设计建议:折扣率与折扣金额二者通常互斥或一一对应。

  • discountAmount(折扣后的货款金额)

    • 业务计算:amount - discount

    • 建议在业务逻辑中保持同步,方便快速查询。

  • costPrice(成本单价)与 costAmount(成本金额)

    • 作用:核算成本,区别于销售价格。

    • 精度建议与销售价格字段一致,支持内部核算和利润分析。

4. 标识及批次字段

  • orderNo(订单号)与 billNo(单据编号)

    • orderNo一般表示客户订单或业务订单号。

    • billNo用于发票、出库单、入库单等单据编号。

    • 建议:编号规则在系统中统一管理,保证唯一性和格式规范(如前缀+日期+流水号)。

  • batchNo(批次号)

    • 关键用于质量管理和溯源,建议支持多个批次号管理(如扩展为数组或单独批次表关联)。

    • 应支持字母数字混合,长度一般不超过32字符。

  • specModel(规格型号)

    • 存储商品的详细规格信息,支持多语言或多版本,可考虑拆分为多字段(如颜色、尺寸等)。

5. 时间字段

  • createDate(创建时间)、lastDate(更新时间)

    • 类型:统一使用TIMESTAMPDATETIME,推荐使用UTC时间,便于跨时区计算。

    • 设计原则:不可修改的createDate应设置为只读;lastDate每次修改业务数据时自动更新。

  • deliveryDate(交货日期)

    • 含义:指明货物计划或实际交付时间,支持业务流程排期。

    • 建议支持时间范围(交货起止),便于业务调度。

6. 状态字段设计

  • 统一采用枚举或整数状态码管理,避免字符串状态带来的解析成本和误用风险。

  • 推荐字段设计:

字段名 说明 状态示例
auditState 审核状态 0-未审核,1-审核中,2-已通过,3-拒绝
state 业务状态 0-草稿,1-已提交,2-完成,3-作废
accountingState 记账状态 0-未记账,1-已记账
dispatchState 发出状态 0-未发出,1-部分发出,2-全部发出
storageState 入库状态 0-未入库,1-部分入库,2-全部入库
  • 枚举状态应统一管理,并设计状态转换规则,避免业务混乱。

7. 用户字段

  • creator(创建人)、modifier(修改人)

    • 建议存储用户ID(整型或字符串),同时关联用户表获取详细信息。

    • 支持审计及权限控制,便于追踪操作人。

8. 备注字段

  • remark(备注)

    • 建议长度支持较长文本(如varchar(1024)或text),满足业务多样化注释需求。

    • 设计时应支持多语言存储或扩展。

9. 货币字段

  • currency(币种)

    • 字段设计:使用ISO 4217三字母币种代码,固定长度3字符。

    • 便于国际化,汇率转换和金额展示。


三、设计原则与扩展建议

1. 设计防范与数据完整性

  • 设计严格的字段约束(非空、唯一、默认值)保障数据完整。

  • 业务层面设计幂等接口,防止重复插入或异常更新。

2. 扩展性和兼容性

  • 版本管理:设计时预留字段或扩展表支持业务升级。

  • 多租户支持:字段设计不包含租户信息,租户隔离通过库或表实现。

  • 国际化支持:时间、货币、文本字段均考虑多语言和时区。

3. 数据规范与自动化

  • 使用代码生成工具和数据库建模工具,自动生成实体类及注释,降低手工错误。

  • 制定统一的文档标准,字段定义含义、业务规则、枚举状态均需文档化。


四、示例数据库字段DDL片段

CREATE TABLE order_detail (
    id BIGINT PRIMARY KEY AUTO_INCREMENT COMMENT '主键',
    order_no VARCHAR(64) NOT NULL COMMENT '订单号',
    bill_no VARCHAR(64) DEFAULT NULL COMMENT '单据编号',
    batch_no VARCHAR(32) DEFAULT NULL COMMENT '批次号',
    spec_model VARCHAR(128) DEFAULT NULL COMMENT '规格型号',
    num DECIMAL(18,6) NOT NULL COMMENT '数量',
    unit_price DECIMAL(18,4) NOT NULL COMMENT '单价(不含税)',
    tax_unit_price DECIMAL(18,4) NOT NULL COMMENT '含税单价',
    amount DECIMAL(18,4) NOT NULL COMMENT '金额(不含税)',
    tax_amount DECIMAL(18,4) NOT NULL COMMENT '含税金额',
    tax_rate DECIMAL(5,4) NOT NULL COMMENT '税率(比例)',
    discount DECIMAL(18,4) DEFAULT 0 COMMENT '折扣金额',
    discount_rate DECIMAL(5,4) DEFAULT 1 COMMENT '折扣率',
    discount_amount DECIMAL(18,4) DEFAULT 0 COMMENT '折扣后金额',
    cost_price DECIMAL(18,4) DEFAULT 0 COMMENT '成本单价',
    cost_amount DECIMAL(18,4) DEFAULT 0 COMMENT '成本金额',
    currency CHAR(3) NOT NULL COMMENT '币种(ISO 4217)',
    delivery_date DATETIME DEFAULT NULL COMMENT '交货日期',
    audit_state TINYINT DEFAULT 0 COMMENT '审核状态',
    state TINYINT DEFAULT 0 COMMENT '业务状态',
    accounting_state TINYINT DEFAULT 0 COMMENT '记账状态',
    dispatch_state TINYINT DEFAULT 0 COMMENT '发出状态',
    storage_state TINYINT DEFAULT 0 COMMENT '入库状态',
    remark VARCHAR(1024) DEFAULT NULL COMMENT '备注',
    create_date DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
    last_date DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
    creator VARCHAR(64) NOT NULL COMMENT '创建人',
    modifier VARCHAR(64) DEFAULT NULL COMMENT '修改人'
) COMMENT='订单明细表';

五、总结

构建专业的ERP系统数据模型,是保证系统稳定、灵活、可持续发展的基础。规范的字段设计不仅涵盖命名规范,还包括数据类型、字段约束、业务语义和未来扩展的全方位考虑。

通过本文,您可以系统性地掌握常用字段的设计思路,结合实际业务,快速构建高质量、符合现代企业需求的ERP数据架构。

Logo

电商企业物流数字化转型必备!快递鸟 API 接口,72 小时快速完成物流系统集成。全流程实战1V1指导,营造开放的API技术生态圈。

更多推荐