-- 创建货物数据表
CREATE TABLE IF NOT EXISTS `cargo_data` (
  `Id` INT UNSIGNED AUTO_INCREMENT PRIMARY KEY COMMENT '主键ID，自增',
  `NeutralWaybillNumber` VARCHAR(100) NOT NULL COMMENT '中性面单单号',
  `MasterPackageNumber` VARCHAR(100) NULL COMMENT '大包号',
  `BillOfLadingNumber` VARCHAR(100) NULL COMMENT '提单号',
  `CustomerId` INT UNSIGNED NULL COMMENT '客户ID（关联customers表）',
  `ImportedAt` DATETIME NOT NULL COMMENT '导入时间',
  `ImportedBy` VARCHAR(50) NOT NULL COMMENT '导入人/系统',
  `Status` CHAR(1) NOT NULL DEFAULT 'Y' COMMENT '数据状态（Y: 有效, N: 无效）',
  INDEX `idx_neutral_waybill` (`NeutralWaybillNumber`),
  INDEX `idx_customer_id` (`CustomerId`),
  INDEX `idx_master_package` (`MasterPackageNumber`),
  INDEX `idx_bill_of_lading` (`BillOfLadingNumber`),
  INDEX `idx_status` (`Status`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- 说明：
-- 1. 中性面单单号（NeutralWaybillNumber）为必填字段
-- 2. 大包号（MasterPackageNumber）和提单号（BillOfLadingNumber）不能同时为空
-- 3. 客户ID（CustomerId）可选，用于关联特定客户
-- 4. 数据状态（Status）用于软删除，'Y'表示有效，'N'表示无效
-- 5. 索引设计：
--    - 中性面单单号：主要查询条件
--    - 客户ID：按客户查询
--    - 大包号：按大包号查询
--    - 提单号：按提单号查询
--    - 数据状态：过滤有效数据