init
This commit is contained in:
@@ -0,0 +1,21 @@
|
||||
-- 表:wms_customer
|
||||
-- 用途:货主。3PL 的客户。自营租户也建一个默认货主,库存一律落到货主。
|
||||
-- 约定:InnoDB / utf8mb4 / 无外键,表间按业务编码关联。详见 docs/database/00-conventions.md
|
||||
-- 说明:customer_code 是货主,不是电商买家。收件人信息在订单上。
|
||||
|
||||
CREATE TABLE `wms_customer` (
|
||||
`id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '内部主键',
|
||||
`tenant_code` VARCHAR(32) NOT NULL COMMENT '租户编码',
|
||||
`customer_code` VARCHAR(32) NOT NULL COMMENT '货主编码,租户内唯一',
|
||||
`customer_name` VARCHAR(128) NOT NULL COMMENT '货主名称',
|
||||
`contact_name` VARCHAR(64) NOT NULL DEFAULT '' COMMENT '联系人',
|
||||
`contact_phone` VARCHAR(32) NOT NULL DEFAULT '' COMMENT '联系电话',
|
||||
`contact_email` VARCHAR(128) NOT NULL DEFAULT '' 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_customer_code` (`tenant_code`, `customer_code`),
|
||||
KEY `idx_tenant_status` (`tenant_code`, `status`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='货主';
|
||||
@@ -0,0 +1,17 @@
|
||||
-- 表:wms_customer_warehouse
|
||||
-- 用途:货主仓库。货主可以使用哪些仓库。
|
||||
-- 约定:InnoDB / utf8mb4 / 无外键,表间按业务编码关联。详见 docs/database/00-conventions.md
|
||||
-- 说明:订单和入库选择仓库时必须落在已启用的绑定上。
|
||||
|
||||
CREATE TABLE `wms_customer_warehouse` (
|
||||
`id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '内部主键',
|
||||
`tenant_code` VARCHAR(32) NOT NULL COMMENT '租户编码',
|
||||
`customer_code` VARCHAR(32) NOT NULL COMMENT '货主编码',
|
||||
`warehouse_code` VARCHAR(32) NOT NULL COMMENT '仓库编码',
|
||||
`status` VARCHAR(32) NOT NULL DEFAULT 'active' COMMENT 'active 启用,disabled 停用',
|
||||
`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_customer_wh` (`tenant_code`, `customer_code`, `warehouse_code`),
|
||||
KEY `idx_tenant_wh` (`tenant_code`, `warehouse_code`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='货主仓库';
|
||||
@@ -0,0 +1,23 @@
|
||||
-- 表:wms_package_spec
|
||||
-- 用途:包装规格。SKU 的装箱规格,如一件箱装多少件。
|
||||
-- 约定:InnoDB / utf8mb4 / 无外键,表间按业务编码关联。详见 docs/database/00-conventions.md
|
||||
-- 说明:库存数量一律按 SKU 基本单位记账,包装规格只用于换算展示和装箱,不单独记库存。
|
||||
|
||||
CREATE TABLE `wms_package_spec` (
|
||||
`id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '内部主键',
|
||||
`tenant_code` VARCHAR(32) NOT NULL COMMENT '租户编码',
|
||||
`sku_code` VARCHAR(64) NOT NULL COMMENT 'SKU 编码',
|
||||
`spec_code` VARCHAR(32) NOT NULL COMMENT '规格编码,SKU 内唯一',
|
||||
`spec_name` VARCHAR(64) NOT NULL COMMENT '规格名称',
|
||||
`unit_qty` DECIMAL(16,4) NOT NULL COMMENT '1 个该包装包含的基本单位数量',
|
||||
`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_default` TINYINT(1) NOT NULL DEFAULT 0 COMMENT '1 默认规格',
|
||||
`status` VARCHAR(32) NOT NULL DEFAULT 'active' COMMENT 'active 启用,disabled 停用',
|
||||
`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_spec` (`tenant_code`, `sku_code`, `spec_code`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='包装规格';
|
||||
@@ -0,0 +1,19 @@
|
||||
-- 表:wms_product
|
||||
-- 用途:商品。SKU 的上层商品,属于一个货主。
|
||||
-- 约定:InnoDB / utf8mb4 / 无外键,表间按业务编码关联。详见 docs/database/00-conventions.md
|
||||
-- 说明:product_code 在租户内唯一,不按货主再分一层。
|
||||
|
||||
CREATE TABLE `wms_product` (
|
||||
`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 '商品编码,租户内唯一',
|
||||
`product_name` VARCHAR(128) NOT 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_product_code` (`tenant_code`, `product_code`),
|
||||
KEY `idx_tenant_customer` (`tenant_code`, `customer_code`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='商品';
|
||||
@@ -0,0 +1,30 @@
|
||||
-- 表: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';
|
||||
@@ -0,0 +1,18 @@
|
||||
-- 表:wms_sku_barcode
|
||||
-- 用途:SKU 条码。SKU 的扫描条码,租户内一条码只对应一个 SKU。
|
||||
-- 约定:InnoDB / utf8mb4 / 无外键,表间按业务编码关联。详见 docs/database/00-conventions.md
|
||||
-- 说明:同一 SKU 可以有多条码。扫描时按租户加条码唯一定位 SKU。
|
||||
|
||||
CREATE TABLE `wms_sku_barcode` (
|
||||
`id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '内部主键',
|
||||
`tenant_code` VARCHAR(32) NOT NULL COMMENT '租户编码',
|
||||
`sku_code` VARCHAR(64) NOT NULL COMMENT 'SKU 编码',
|
||||
`barcode` VARCHAR(64) NOT NULL COMMENT '条码',
|
||||
`barcode_type` VARCHAR(16) NOT NULL DEFAULT 'sku' COMMENT 'sku 单品,case 外箱,other 其他',
|
||||
`is_primary` TINYINT(1) NOT NULL DEFAULT 0 COMMENT '1 主条码',
|
||||
`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_barcode` (`tenant_code`, `barcode`),
|
||||
KEY `idx_tenant_sku` (`tenant_code`, `sku_code`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='SKU 条码';
|
||||
@@ -0,0 +1,20 @@
|
||||
-- 表:wms_supplier
|
||||
-- 用途:供应商。入库来源供应商。
|
||||
-- 约定:InnoDB / utf8mb4 / 无外键,表间按业务编码关联。详见 docs/database/00-conventions.md
|
||||
-- 说明:供应商按租户隔离。
|
||||
|
||||
CREATE TABLE `wms_supplier` (
|
||||
`id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '内部主键',
|
||||
`tenant_code` VARCHAR(32) NOT NULL COMMENT '租户编码',
|
||||
`supplier_code` VARCHAR(32) NOT NULL COMMENT '供应商编码,租户内唯一',
|
||||
`supplier_name` VARCHAR(128) NOT NULL COMMENT '供应商名称',
|
||||
`contact_name` VARCHAR(64) NOT NULL DEFAULT '' COMMENT '联系人',
|
||||
`contact_phone` VARCHAR(32) NOT NULL DEFAULT '' COMMENT '联系电话',
|
||||
`contact_email` VARCHAR(128) NOT NULL DEFAULT '' 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_supplier_code` (`tenant_code`, `supplier_code`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='供应商';
|
||||
Reference in New Issue
Block a user