70 lines
4.1 KiB
SQL
70 lines
4.1 KiB
SQL
-- ============================================
|
||
-- 白名单订单表 - 创建表
|
||
-- ============================================
|
||
-- 说明:创建 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: 支付平台的订单号(第三方平台的订单号)
|
||
-- ============================================ |