Files
ycc-proxy-server/deploy/sql/user_feature_whitelist_migration.sql
liangzai 3c6e2683f5 fix
2026-01-12 16:43:08 +08:00

44 lines
2.8 KiB
SQL
Raw 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.

-- ============================================
-- 用户模块白名单表 - 创建表
-- ============================================
-- 说明:创建 user_feature_whitelist 表用于记录用户身份证号对应的feature屏蔽白名单
-- 执行时间2024-XX-XX
-- ============================================
CREATE TABLE `user_feature_whitelist` (
`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 '版本号(乐观锁)',
/* 业务字段 */
`id_card` varchar(50) NOT NULL COMMENT '身份证号(查询对象标识)',
`feature_id` CHAR(36) NOT NULL COMMENT 'Feature的UUID',
`feature_api_id` varchar(100) NOT NULL COMMENT 'Feature的API标识冗余字段方便查询',
`user_id` CHAR(36) NOT NULL COMMENT '操作用户ID代理的user_id以后可扩展为普通用户',
`order_id` CHAR(36) DEFAULT NULL COMMENT '关联的查询订单ID可选记录来源',
`whitelist_order_id` CHAR(36) DEFAULT NULL COMMENT '关联的白名单订单ID用于付费',
`amount` decimal(10,2) NOT NULL COMMENT '费用(单位:元)',
`status` tinyint NOT NULL DEFAULT 1 COMMENT '状态1=生效2=已失效',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_id_card_feature_id` (`id_card`, `feature_id`, `del_state`) COMMENT '身份证号和feature_id联合唯一索引',
UNIQUE KEY `uk_id_card_feature_api_id` (`id_card`, `feature_api_id`, `del_state`) COMMENT '身份证号和feature_api_id联合唯一索引',
UNIQUE KEY `uk_whitelist_order_id` (`whitelist_order_id`) COMMENT '白名单订单ID唯一索引',
KEY `idx_id_card` (`id_card`) COMMENT '优化按身份证号查询',
KEY `idx_feature_id` (`feature_id`) COMMENT '优化按feature查询',
KEY `idx_feature_api_id` (`feature_api_id`) COMMENT '优化按API标识查询',
KEY `idx_user_id` (`user_id`) COMMENT '优化按用户查询',
KEY `idx_status` (`status`) COMMENT '优化按状态查询'
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='用户模块白名单表';
-- ============================================
-- 说明:
-- 1. 以身份证号id_card+ feature_id 为单位,记录白名单屏蔽关系
-- 2. user_id 使用操作用户的ID代理的user_id便于以后扩展为普通用户操作
-- 3. status=1表示生效status=2表示已失效可手动失效或系统失效
-- 4. 一旦生效,该身份证号+feature组合永久屏蔽除非手动失效
-- ============================================