38 lines
1.8 KiB
SQL
38 lines
1.8 KiB
SQL
-- ============================================================
|
||
-- V2.4 幂等性支持:唯一索引
|
||
-- ============================================================
|
||
-- 订单表:平台订单号+平台+店铺 唯一,防止重复创建订单
|
||
-- 库存操作记录表:SKU+仓库+关联单号 唯一,防止重复扣减/锁定/解锁
|
||
-- 物流轨迹表:(运单号, 轨迹时间, 地点) 已有去重,新增强制唯一约束
|
||
-- ============================================================
|
||
|
||
-- 1. orders 表:平台订单号+平台+店铺 唯一索引
|
||
-- 确保同一店铺同一平台订单号不会重复创建
|
||
ALTER TABLE orders
|
||
ADD CONSTRAINT uk_orders_platform_order_sn
|
||
UNIQUE (platform_order_sn, platform, shop_id);
|
||
|
||
-- 2. stocks 表:(sku_code, warehouse_id) 已有主键,验证唯一性
|
||
-- 确保每个仓库的SKU库存记录唯一
|
||
ALTER TABLE stocks
|
||
ADD CONSTRAINT uk_stocks_sku_warehouse
|
||
UNIQUE (sku_code, warehouse_id);
|
||
|
||
-- 3. stock_logs 表:(sku_code, warehouse_id, related_no, type) 唯一索引
|
||
-- 防止同一操作重复记录(如重复扣减、重复解锁)
|
||
-- 注意:如果 stock_logs 表没有这些字段,请根据实际表结构调整
|
||
-- 以下为假设字段名,请根据实际情况修改
|
||
-- ALTER TABLE stock_logs
|
||
-- ADD CONSTRAINT uk_stock_logs_operation
|
||
-- UNIQUE (sku_code, warehouse_id, related_no, operation_type);
|
||
|
||
-- 4. waybill_status 表:(waybill_no) 已有唯一索引,验证是否存在
|
||
-- 确保运单号唯一
|
||
-- ALTER TABLE waybill_status ADD UNIQUE (waybill_no);
|
||
|
||
-- 5. logistics_trace 表:(waybill_no, trace_time, location) 唯一索引
|
||
-- 确保同一运单同一时间同一地点的轨迹不重复
|
||
ALTER TABLE logistics_trace
|
||
ADD CONSTRAINT uk_logistics_trace_waybill_time_location
|
||
UNIQUE (waybill_no, trace_time, location);
|