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

数据库表结构设计

本目录是 MySQL 8 建表设计稿,每张表一个 .sql 文件。通用规范见 ../09-database.md,命名、类型和库存粒度见 00-conventions.md。

落地方式:某个 Phase 开工时,只把本阶段要用的表写成 Laravel migration,并与这里的 SQL 保持一致。不要一次生成全部 migration,也不要在生产库直接执行这些文件。

表之间没有外键,执行顺序没有依赖。

表清单

表 说明 目录 Phase
wms_tenant 租户。SaaS 隔离边界,tenant_code 全局唯一。 01-saas 4
wms_user 用户。租户内登录账号。 01-saas 4
wms_role 角色。租户内角色。 01-saas 4
wms_permission 权限。全局权限码目录,不按租户复制。 01-saas 4
wms_role_permission 角色权限。租户内角色与全局权限码的绑定。 01-saas 4
wms_user_role 用户角色。租户内用户与角色的绑定。 01-saas 4
wms_tenant_setting 租户设置。租户级可配置项,包括定时任务开关。 01-saas 4
wms_number_sequence 单号序列。按租户、业务类型发号,保证并发下单号不重复。 01-saas 4
wms_warehouse 仓库。租户下的物理仓库。 02-warehouse 5
wms_zone 库区。仓库内的功能分区。 02-warehouse 5
wms_location_type 库位类型。库位的混放规则。 02-warehouse 5
wms_location 库位。仓库内可存放库存的最小位置,同时保存容量。 02-warehouse 5
wms_location_strategy 库位策略。上架、分配、拣货的规则。空编码表示该条件不限。 02-warehouse 5
wms_customer 货主。3PL 的客户。自营租户也建一个默认货主,库存一律落到货主。 03-master 6
wms_customer_warehouse 货主仓库。货主可以使用哪些仓库。 03-master 6
wms_supplier 供应商。入库来源供应商。 03-master 6
wms_product 商品。SKU 的上层商品,属于一个货主。 03-master 6
wms_sku SKU。库存与订单的最小商品单位,含单件重量和尺寸。 03-master 6
wms_sku_barcode SKU 条码。SKU 的扫描条码,租户内一条码只对应一个 SKU。 03-master 6
wms_package_spec 包装规格。SKU 的装箱规格,如一件箱装多少件。 03-master 6
wms_batch 批次。启用批次或效期管理的 SKU 的批次档案。 04-inventory 7
wms_inventory 库存余额。某个货主、仓库、库位、SKU、批次上的数量结果。 04-inventory 7
wms_stock_log 库存流水。库存变化的事实记录,只能追加。 04-inventory 8
wms_inventory_hold 库存冻结单。把可用库存转为冻结的业务单据。 04-inventory 8
wms_inventory_hold_item 库存冻结明细。冻结单的库位与数量。 04-inventory 8
wms_stock_adjustment 库存调整单。盘盈盘亏、报损等人工调整。 04-inventory 8
wms_stock_adjustment_item 库存调整明细。调整的数量桶与变化量。 04-inventory 8
wms_stocktake 盘点单。仓库盘点任务。 04-inventory 8
wms_stocktake_item 盘点明细。系统数量与实盘数量。 04-inventory 8
wms_inventory_alert 库存预警规则。SKU 在仓库的最低可用量阈值。 04-inventory 8
wms_inbound 入库单。入库作业的头单据。 05-inbound 9
wms_inbound_item 入库明细。入库单行,数量列是各作业的汇总结果。 05-inbound 9
wms_inbound_receipt 收货记录。一张入库单可以分多次收货。 05-inbound 9
wms_inbound_receipt_item 收货明细。本次实收数量以及与预计的差异。 05-inbound 9
wms_inbound_qc 入库质检。按收货结果做的质检记录。 05-inbound 9
wms_inbound_putaway 上架任务。把收货库位的合格库存移到存储库位。 05-inbound 9
wms_order 统一订单。与具体电商平台解耦的履约订单。 06-outbound 10
wms_order_item 订单明细。订单要履约的 SKU 与数量。 06-outbound 10
wms_outbound 出库单。仓库执行单据。一张订单可按仓库拆成多张出库单。 06-outbound 10
wms_outbound_item 出库明细。出库单行及各作业数量汇总。 06-outbound 10
wms_allocation 库存分配。出库行预占到具体库位批次的记录,也是库存锁定明细。 06-outbound 10
wms_wave 波次。把多张出库单组成一次拣货。 06-outbound 11
wms_wave_outbound 波次出库。波次包含的出库单。 06-outbound 11
wms_picking_task 拣货任务。一次派给拣货人的任务,可来自波次或单张出库单。 06-outbound 11
wms_picking_task_item 拣货任务明细。按库位给出的应拣与实拣数量。 06-outbound 11
wms_package 包裹。复核通过后的打包结果。打包不改变库存数量桶。 06-outbound 11
wms_package_item 包裹明细。包裹内的 SKU 数量。 06-outbound 11
wms_return_order 退货单。客户退回仓库的单据。 07-return 9
wms_return_order_item 退货明细。退货数量、质检结论和处置方式。 07-return 9
wms_carrier 承运商。租户配置的承运商主数据。 08-logistics 12
wms_logistics_service 物流服务。承运商下的服务产品,如标准、快递、经济。 08-logistics 12
wms_logistics_channel 物流渠道。仓库实际可选用的承运商服务。 08-logistics 12
wms_freight_rule 运费规则。渠道上的重量段首重续重价格。 08-logistics 12
wms_shipment 发货单。包裹交给承运商的记录。 08-logistics 11
wms_waybill 面单。发货单对应的面单文件,允许作废后重开。 08-logistics 12
wms_tracking_event 轨迹事件。运单轨迹,按时间追加。 08-logistics 12
wms_platform_shop 平台店铺。第三方平台连接。新增平台不改订单表。 09-integration 14
wms_sync_task 同步任务。订单、库存、轨迹等拉取任务的进度。 09-integration 14
wms_webhook_log Webhook 日志。平台回调的接收与处理结果,用于验签后的幂等。 09-integration 14
wms_login_log 登录日志。登录成功与失败记录。 10-audit 4
wms_operation_log 操作日志。关键业务数据谁在何时改了什么。 10-audit 4
wms_api_log API 日志。接口访问记录,不保存完整报文。 10-audit 4
wms_status_log 状态变更日志。订单、入库、出库等单据的状态迁移。 10-audit 4

领域关系

erDiagram
  wms_tenant ||--o{ wms_warehouse : tenant_code
  wms_customer ||--o{ wms_sku : customer_code
  wms_warehouse ||--o{ wms_zone : warehouse_code
  wms_zone ||--o{ wms_location : zone_code
  wms_sku ||--o{ wms_inventory : sku_code
  wms_location ||--o{ wms_inventory : location_code
  wms_inventory ||--o{ wms_stock_log : "同一事务"
  wms_order ||--o{ wms_order_item : order_no
  wms_order ||--o{ wms_outbound : order_no
  wms_outbound ||--o{ wms_outbound_item : outbound_no
  wms_outbound ||--o{ wms_allocation : outbound_no
  wms_allocation ||--o{ wms_picking_task_item : allocation_no
  wms_outbound ||--o{ wms_package : outbound_no
  wms_package ||--|| wms_shipment : package_no
  wms_inbound ||--o{ wms_inbound_item : inbound_no
  wms_inbound ||--o{ wms_inbound_receipt : inbound_no
  wms_inbound ||--o{ wms_inbound_putaway : inbound_no

关联字段都是业务编码。wms_stock_log.inventory_id 只用于和余额行对账。