44 lines
2.8 KiB
MySQL
44 lines
2.8 KiB
MySQL
|
|
-- ============================================
|
|||
|
|
-- 用户模块白名单表 - 创建表
|
|||
|
|
-- ============================================
|
|||
|
|
-- 说明:创建 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组合永久屏蔽,除非手动失效
|
|||
|
|
-- ============================================
|