187 lines
7.0 KiB
Markdown
187 lines
7.0 KiB
Markdown
# 客户、供应商、商品、SKU
|
||
|
||
约定见 [00-conventions.md](./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` 不影响已记账数量。
|