-- 表:wms_sku -- 用途:SKU。库存与订单的最小商品单位,含单件重量和尺寸。 -- 约定:InnoDB / utf8mb4 / 无外键,表间按业务编码关联。详见 docs/database/00-conventions.md -- 说明:不同货主不得复用同一个 sku_code。重量尺寸变更不影响历史单据上的快照。 CREATE TABLE `wms_sku` ( `id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '内部主键', `tenant_code` VARCHAR(32) NOT NULL COMMENT '租户编码', `customer_code` VARCHAR(32) NOT NULL COMMENT '货主编码', `product_code` VARCHAR(64) NOT NULL COMMENT '商品编码', `sku_code` VARCHAR(64) NOT NULL COMMENT 'SKU 编码,租户内唯一', `sku_name` VARCHAR(128) NOT NULL COMMENT 'SKU 名称', `unit` VARCHAR(16) NOT NULL DEFAULT 'pcs' COMMENT '计量单位', `net_weight` DECIMAL(12,4) NULL COMMENT '单件净重,千克', `length_cm` DECIMAL(12,4) NULL COMMENT '长,厘米,空表示未维护', `width_cm` DECIMAL(12,4) NULL COMMENT '宽,厘米,空表示未维护', `height_cm` DECIMAL(12,4) NULL COMMENT '高,厘米,空表示未维护', `is_batch_managed` TINYINT(1) NOT NULL DEFAULT 0 COMMENT '1 强制批次管理', `is_expiry_managed` TINYINT(1) NOT NULL DEFAULT 0 COMMENT '1 管理效期', `shelf_life_days` INT UNSIGNED NULL COMMENT '保质期天数,不管效期时为空', `status` VARCHAR(32) NOT NULL DEFAULT 'active' COMMENT 'active 启用,disabled 停用', `remark` VARCHAR(500) NOT NULL DEFAULT '' COMMENT '备注', `created_at` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '创建时间', `updated_at` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3) COMMENT '更新时间', PRIMARY KEY (`id`), UNIQUE KEY `uk_tenant_sku_code` (`tenant_code`, `sku_code`), KEY `idx_tenant_customer` (`tenant_code`, `customer_code`), KEY `idx_tenant_product` (`tenant_code`, `product_code`), KEY `idx_tenant_status` (`tenant_code`, `status`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='SKU';