| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869 |
- -- =============================================
- -- 订单变更记录表(记录每次下单/加餐的商品变化)
- -- 用于展示每次操作都加了什么商品
- -- =============================================
- CREATE TABLE IF NOT EXISTS `store_order_change_log` (
- `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键ID',
- `order_id` int(11) NOT NULL COMMENT '订单ID',
- `order_no` varchar(64) NOT NULL COMMENT '订单号',
- `batch_no` varchar(64) NOT NULL COMMENT '批次号(同一时间点的操作使用同一批次号,用于分组展示)',
- `operation_type` tinyint(4) NOT NULL DEFAULT '1' COMMENT '操作类型(1:首次下单, 2:加餐, 3:更新订单)',
- `cuisine_id` int(11) NOT NULL COMMENT '菜品ID',
- `cuisine_name` varchar(200) NOT NULL COMMENT '菜品名称',
- `cuisine_type` tinyint(4) DEFAULT NULL COMMENT '菜品类型(1:单品, 2:套餐)',
- `cuisine_image` varchar(500) DEFAULT NULL COMMENT '菜品图片',
- `unit_price` decimal(10,2) NOT NULL DEFAULT '0.00' COMMENT '单价',
- `quantity_change` int(11) NOT NULL DEFAULT '0' COMMENT '数量变化(新增的数量,正数表示增加,负数表示减少)',
- `quantity_before` int(11) DEFAULT NULL COMMENT '变化前数量(用于展示变化前后对比)',
- `quantity_after` int(11) DEFAULT NULL COMMENT '变化后数量(用于展示变化前后对比)',
- `amount_change` decimal(10,2) NOT NULL DEFAULT '0.00' COMMENT '金额变化(新增的金额)',
- `operation_time` datetime NOT NULL COMMENT '操作时间',
- `operator_user_id` int(11) DEFAULT NULL COMMENT '操作人ID',
- `operator_user_phone` varchar(20) DEFAULT NULL COMMENT '操作人手机号',
- `remark` varchar(500) DEFAULT NULL COMMENT '备注',
- `delete_flag` tinyint(4) NOT NULL DEFAULT '0' COMMENT '删除标记, 0:未删除, 1:已删除',
- `created_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
- `created_user_id` int(11) DEFAULT NULL COMMENT '创建人ID',
- `updated_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间',
- `updated_user_id` int(11) DEFAULT NULL COMMENT '修改人ID',
- PRIMARY KEY (`id`),
- KEY `idx_order_id` (`order_id`),
- KEY `idx_order_no` (`order_no`),
- KEY `idx_batch_no` (`batch_no`),
- KEY `idx_operation_type` (`operation_type`),
- KEY `idx_operation_time` (`operation_time`),
- KEY `idx_cuisine_id` (`cuisine_id`),
- KEY `idx_operator_user_id` (`operator_user_id`),
- KEY `idx_order_batch` (`order_id`, `batch_no`),
- KEY `idx_order_time` (`order_id`, `operation_time`)
- ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='订单变更记录表(记录每次下单/加餐的商品变化)';
- -- =============================================
- -- 表结构说明:
- --
- -- 1. batch_no(批次号):
- -- - 同一时间点的操作使用同一批次号
- -- - 格式建议:ORDER{orderId}_{timestamp} 或 ORDER{orderId}_{yyyyMMddHHmmss}
- -- - 用于按批次分组,展示每次操作都加了什么商品
- --
- -- 2. operation_type(操作类型):
- -- - 1: 首次下单(创建订单时)
- -- - 2: 加餐(通过加餐接口添加)
- -- - 3: 更新订单(更新订单时重新下单)
- --
- -- 3. quantity_change(数量变化):
- -- - 正数:新增的数量
- -- - 负数:减少的数量(如果支持减少)
- -- - 0:数量未变化(理论上不应该出现)
- --
- -- 4. quantity_before / quantity_after(变化前后数量):
- -- - 用于展示变化前后对比
- -- - 首次下单时,quantity_before = 0, quantity_after = quantity_change
- -- - 加餐时,quantity_before = 原数量, quantity_after = 原数量 + quantity_change
- --
- -- 5. 使用场景:
- -- - 查询某个订单的所有变更记录:SELECT * FROM store_order_change_log WHERE order_id = ? ORDER BY operation_time
- -- - 按批次分组展示:SELECT batch_no, operation_type, operation_time, GROUP_CONCAT(...) FROM store_order_change_log WHERE order_id = ? GROUP BY batch_no ORDER BY operation_time
- -- - 查询某次操作的所有商品:SELECT * FROM store_order_change_log WHERE batch_no = ?
- -- =============================================
|