Files
ycc-proxy-server/deploy/sql/whitelist_order_migration.sql
2026-01-12 16:43:08 +08:00

70 lines
4.1 KiB
SQL
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

-- ============================================
-- 白名单订单表 - 创建表
-- ============================================
-- 说明:创建 whitelist_order 和 whitelist_order_item 表,用于白名单订单管理
-- 执行时间2024-XX-XX
-- ============================================
-- 1. 创建白名单订单表
CREATE TABLE `whitelist_order` (
`id` CHAR(36) NOT NULL COMMENT 'UUID主键',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`delete_time` datetime DEFAULT NULL COMMENT '删除时间',
`del_state` tinyint NOT NULL DEFAULT '0' COMMENT '删除状态0=未删除1=已删除',
`version` bigint NOT NULL DEFAULT '0' COMMENT '版本号(乐观锁)',
/* 业务字段 */
`order_no` varchar(50) NOT NULL COMMENT '订单号(唯一)',
`user_id` CHAR(36) NOT NULL COMMENT '用户ID代理的user_id',
`id_card` varchar(50) NOT NULL COMMENT '身份证号(查询对象标识)',
`total_amount` decimal(10,2) NOT NULL COMMENT '总金额(单位:元)',
`status` tinyint NOT NULL DEFAULT 1 COMMENT '订单状态1=待支付2=已支付3=已取消',
`payment_method` varchar(20) DEFAULT NULL COMMENT '支付方式wechat, alipay, appleiap等',
`payment_platform` varchar(20) DEFAULT NULL COMMENT '支付平台alipay, wechat, appleiap等',
`platform_order_id` varchar(100) DEFAULT NULL COMMENT '支付平台订单号(第三方平台的订单号)',
`pay_time` datetime DEFAULT NULL COMMENT '支付时间',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_order_no` (`order_no`) COMMENT '订单号唯一索引',
KEY `idx_user_id` (`user_id`) COMMENT '优化按用户查询',
KEY `idx_id_card` (`id_card`) COMMENT '优化按身份证号查询',
KEY `idx_status` (`status`) COMMENT '优化按状态查询',
KEY `idx_create_time` (`create_time`) COMMENT '优化按创建时间查询',
KEY `idx_platform_order_id` (`platform_order_id`) COMMENT '优化按支付平台订单号查询'
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='白名单订单表';
-- 2. 创建白名单订单明细表
CREATE TABLE `whitelist_order_item` (
`id` CHAR(36) NOT NULL COMMENT 'UUID主键',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`delete_time` datetime DEFAULT NULL COMMENT '删除时间',
`del_state` tinyint NOT NULL DEFAULT '0' COMMENT '删除状态0=未删除1=已删除',
`version` bigint NOT NULL DEFAULT '0' COMMENT '版本号(乐观锁)',
/* 业务字段 */
`order_id` CHAR(36) NOT NULL COMMENT '订单ID关联whitelist_order.id',
`feature_id` CHAR(36) NOT NULL COMMENT 'Feature的UUID',
`feature_api_id` varchar(100) NOT NULL COMMENT 'Feature的API标识冗余',
`feature_name` varchar(200) NOT NULL COMMENT 'Feature的名称冗余',
`price` decimal(10,2) NOT NULL COMMENT '单价(单位:元)',
PRIMARY KEY (`id`),
KEY `idx_order_id` (`order_id`) COMMENT '优化按订单查询',
KEY `idx_feature_id` (`feature_id`) COMMENT '优化按feature查询'
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='白名单订单明细表';
-- ============================================
-- 说明:
-- 1. whitelist_order 记录白名单订单主信息
-- 2. whitelist_order_item 记录订单明细每个feature一条记录
-- - 如果订单只包含一个feature可以考虑去掉明细表将feature信息直接放在主表
-- - 如果订单可能包含多个feature建议保留明细表便于记录每个feature的单价和名称
-- 3. 订单状态1=待支付2=已支付3=已取消
-- 4. 支付成功后,会创建对应的 user_feature_whitelist 记录
-- 5. payment_method: 支付方式wechat, alipay, appleiap等
-- 6. payment_platform: 支付平台alipay, wechat, appleiap等
-- 7. platform_order_id: 支付平台的订单号(第三方平台的订单号)
-- ============================================