Files
2026-09-30 11:11:54 +08:00

7.0 KiB
Raw Permalink Blame History

客户、供应商、商品、SKU

约定见 00-conventions.md。Phase 1 锁定,Phase 6 写迁移。

customer 是货主,不是商城买家。3PL 场景下库存、商品、订单都归属某个货主。

sku_code 在租户内唯一。两个货主不能共用同一个 SKU 编码;需要区分时由租户分配不同编码。

wms_customer 客户(货主)

用途:租户服务的货主。

字段 类型 可空 默认 说明
id BIGINT UNSIGNED N AUTO_INCREMENT 内部主键
tenant_code VARCHAR(32) N 租户编码
customer_code VARCHAR(64) N 客户编码
name VARCHAR(128) N 名称
status VARCHAR(32) N active 状态
created_at TIMESTAMP Y
updated_at TIMESTAMP Y
deleted_at TIMESTAMP Y 软删除

索引:

名称 类型 字段 支撑的查询
uk_tenant_customer_code UNIQUE (tenant_code, customer_code) 按客户编码查找
idx_tenant_status INDEX (tenant_code, status) 列表筛选

状态:active、disabled。

关联:商品、库存、入库、出库、订单带 customer_code。

并发 / 审计:已有库存或未完成单据时不能软删。变更写 wms_operation_log。

wms_supplier 供应商

用途:入库来源。customer_code 为空表示租户共用供应商,有值表示该货主的供应商。

字段 类型 可空 默认 说明
id BIGINT UNSIGNED N AUTO_INCREMENT 内部主键
tenant_code VARCHAR(32) N 租户编码
supplier_code VARCHAR(64) N 供应商编码
customer_code VARCHAR(64) Y 所属货主,空为租户共用
name VARCHAR(128) N 名称
status VARCHAR(32) N active 状态
created_at TIMESTAMP Y
updated_at TIMESTAMP Y
deleted_at TIMESTAMP Y 软删除

索引:

名称 类型 字段 支撑的查询
uk_tenant_supplier_code UNIQUE (tenant_code, supplier_code) 按供应商编码查找
idx_tenant_customer INDEX (tenant_code, customer_code) 某货主的供应商

状态:active、disabled。

关联:wms_inbound.supplier_code、wms_batch.supplier_code。

并发 / 审计:被未完成入库单引用时不能软删。

wms_product 商品

用途:SKU 的上层商品,归属货主。

字段 类型 可空 默认 说明
id BIGINT UNSIGNED N AUTO_INCREMENT 内部主键
tenant_code VARCHAR(32) N 租户编码
customer_code VARCHAR(64) N 货主
product_code VARCHAR(64) N 商品编码,租户内唯一
product_name VARCHAR(255) N 名称
status VARCHAR(32) N active 状态
created_at TIMESTAMP Y
updated_at TIMESTAMP Y
deleted_at TIMESTAMP Y 软删除

索引:

名称 类型 字段 支撑的查询
uk_tenant_product_code UNIQUE (tenant_code, product_code) 按商品编码查找
idx_tenant_customer_status INDEX (tenant_code, customer_code, status) 货主下的商品列表

状态:active、disabled。

关联:wms_sku.product_code。

并发 / 审计:下属 SKU 仍存在时不能软删。

wms_sku SKU

用途:库存与单据的基本物料。数量的「1」等于本表的基本单位。

字段 类型 可空 默认 说明
id BIGINT UNSIGNED N AUTO_INCREMENT 内部主键
tenant_code VARCHAR(32) N 租户编码
customer_code VARCHAR(64) N 货主
product_code VARCHAR(64) N 商品编码
sku_code VARCHAR(64) N SKU 编码,租户内唯一
sku_name_cn VARCHAR(255) N 中文名称
sku_name_en VARCHAR(255) N 英文名称
sku_unit VARCHAR(32) N pcs 基本单位
length_cm DECIMAL(10,2) Y 长,厘米
width_cm DECIMAL(10,2) Y 宽,厘米
height_cm DECIMAL(10,2) Y 高,厘米
weight_g DECIMAL(16,4) Y 重量,克
status VARCHAR(32) N active 状态
created_at TIMESTAMP Y
updated_at TIMESTAMP Y
deleted_at TIMESTAMP Y 软删除

索引:

名称 类型 字段 支撑的查询
uk_tenant_sku_code UNIQUE (tenant_code, sku_code) 按 SKU 编码查找
idx_tenant_customer_product INDEX (tenant_code, customer_code, product_code) 商品下的 SKU
idx_tenant_customer_status INDEX (tenant_code, customer_code, status) 货主下的 SKU 列表

状态:active、disabled。停用后禁止新的入库与分配,已有库存仍可出完。

关联:条码、包装、库存、单据明细。

并发 / 审计:存在非零库存时不能软删。变更写 wms_operation_log。

wms_sku_barcode 条码

用途:一个 SKU 多条码。扫描时按租户内条码定位 SKU。

字段 类型 可空 默认 说明
id BIGINT UNSIGNED N AUTO_INCREMENT 内部主键
tenant_code VARCHAR(32) N 租户编码
sku_code VARCHAR(64) N SKU 编码
barcode VARCHAR(64) N 条码,租户内唯一
barcode_type VARCHAR(32) N unit 类型
created_at TIMESTAMP Y
updated_at TIMESTAMP Y

索引:

名称 类型 字段 支撑的查询
uk_tenant_barcode UNIQUE (tenant_code, barcode) 扫码
idx_tenant_sku INDEX (tenant_code, sku_code) SKU 的全部条码

barcode_type:unit 单品、case 箱、pallet 托。

关联:wms_sku.sku_code。箱、托条码只用于识别 SKU,换算数量以 wms_pack_spec 为准。

并发 / 审计:无软删除。解除绑定即删行,并写 wms_operation_log。

wms_pack_spec 包装规格

用途:相对基本单位的包装。qty_per_pack 表示这一包等于多少基本单位。

字段 类型 可空 默认 说明
id BIGINT UNSIGNED N AUTO_INCREMENT 内部主键
tenant_code VARCHAR(32) N 租户编码
sku_code VARCHAR(64) N SKU 编码
pack_code VARCHAR(64) N 包装编码,SKU 内唯一
name VARCHAR(128) N 名称
qty_per_pack DECIMAL(16,4) N 含基本单位数量,必须大于 0
length_mm DECIMAL(10,2) Y
width_mm DECIMAL(10,2) Y
height_mm DECIMAL(10,2) Y
weight_g DECIMAL(16,4) Y
created_at TIMESTAMP Y
updated_at TIMESTAMP Y

索引:

名称 类型 字段 支撑的查询
uk_tenant_sku_pack UNIQUE (tenant_code, sku_code, pack_code) 按包装编码查找

关联:wms_sku.sku_code。库存与单据数量仍记基本单位,不按包装记账。

并发 / 审计:无软删除。修改 qty_per_pack 不影响已记账数量。