-- 风控模块建表语句 -- ---------------------------- -- 风控规则表 -- ---------------------------- drop table if exists risk_rule; create table risk_rule ( rule_id bigint(20) not null auto_increment comment '规则ID', rule_name varchar(100) not null comment '规则名称', rule_code varchar(64) not null comment '规则编码', rule_type varchar(20) not null comment '规则类型(1交易规则 2登录规则 3设备规则 4行为规则)', rule_desc varchar(500) default null comment '规则描述', rule_script text default null comment '规则脚本/条件', risk_level varchar(20) not null comment '风险等级(1低风险 2中风险 3高风险 4极高风险)', rule_score decimal(10,2) default 0.00 comment '规则分值', action_type varchar(20) not null comment '触发动作(1预警 2拦截 3人工审核 4记录日志)', status char(1) default '0' comment '规则状态(0正常 1停用)', priority int(11) default 0 comment '优先级', del_flag char(1) default '0' comment '删除标志(0代表存在 1代表删除)', remark varchar(500) default null comment '备注', create_by bigint(20) default null comment '创建者', create_time datetime default null comment '创建时间', update_by bigint(20) default null comment '更新者', update_time datetime default null comment '更新时间', primary key (rule_id), unique key uk_rule_code (rule_code) ) engine=innodb auto_increment=1 DEFAULT CHARSET=utf8mb4 comment = '风控规则表'; -- ---------------------------- -- 风控事件表 -- ---------------------------- drop table if exists risk_event; create table risk_event ( event_id bigint(20) not null auto_increment comment '事件ID', event_no varchar(64) not null comment '事件编号', event_type varchar(20) not null comment '事件类型', event_source varchar(50) default null comment '事件来源', user_id bigint(20) default null comment '用户ID', user_name varchar(50) default null comment '用户名称', device_id varchar(100) default null comment '设备ID', ip_address varchar(50) default null comment 'IP地址', location varchar(100) default null comment '地理位置', event_data text default null comment '事件数据', risk_level varchar(20) default null comment '风险等级', risk_score decimal(10,2) default 0.00 comment '风险分值', hit_rules varchar(500) default null comment '命中规则', action_taken varchar(20) default null comment '已执行动作', status char(1) default '0' comment '状态(0待处理 1已处理 2已忽略)', remark varchar(500) default null comment '备注', event_time datetime default null comment '事件发生时间', del_flag char(1) default '0' comment '删除标志(0代表存在 1代表删除)', create_by bigint(20) default null comment '创建者', create_time datetime default null comment '创建时间', update_by bigint(20) default null comment '更新者', update_time datetime default null comment '更新时间', primary key (event_id), unique key uk_event_no (event_no) ) engine=innodb auto_increment=1 DEFAULT CHARSET=utf8mb4 comment = '风控事件表'; -- ---------------------------- -- 风控案例表 -- ---------------------------- drop table if exists risk_case; create table risk_case ( case_id bigint(20) not null auto_increment comment '案例ID', case_no varchar(64) not null comment '案例编号', case_name varchar(100) not null comment '案例名称', case_type varchar(20) not null comment '案例类型', case_desc text default null comment '案例描述', event_id bigint(20) default null comment '关联事件ID', event_no varchar(64) default null comment '关联事件编号', user_id bigint(20) default null comment '用户ID', user_name varchar(50) default null comment '用户名称', risk_level varchar(20) default null comment '风险等级', risk_score decimal(10,2) default 0.00 comment '风险分值', hit_rules varchar(500) default null comment '命中规则', case_result varchar(20) default null comment '案例结果', status char(1) default '0' comment '状态(0待处理 1已处理 2已归档)', remark varchar(500) default null comment '备注', del_flag char(1) default '0' comment '删除标志(0代表存在 1代表删除)', create_by bigint(20) default null comment '创建者', create_time datetime default null comment '创建时间', update_by bigint(20) default null comment '更新者', update_time datetime default null comment '更新时间', primary key (case_id), unique key uk_case_no (case_no) ) engine=innodb auto_increment=1 DEFAULT CHARSET=utf8mb4 comment = '风控案例表'; -- ---------------------------- -- 黑名单表 -- ---------------------------- drop table if exists risk_blacklist; create table risk_blacklist ( black_id bigint(20) not null auto_increment comment '黑名单ID', black_type varchar(20) not null comment '黑名单类型(1IP 2手机号 3设备 4用户 5邮箱)', black_value varchar(200) not null comment '黑名单值', black_name varchar(100) default null comment '黑名单名称', reason varchar(500) default null comment '加入原因', source varchar(50) default null comment '来源', expire_time datetime default null comment '过期时间', status char(1) default '0' comment '状态(0正常 1停用)', remark varchar(500) default null comment '备注', del_flag char(1) default '0' comment '删除标志(0代表存在 1代表删除)', create_by bigint(20) default null comment '创建者', create_time datetime default null comment '创建时间', update_by bigint(20) default null comment '更新者', update_time datetime default null comment '更新时间', primary key (black_id), unique key uk_black_value (black_type, black_value) ) engine=innodb auto_increment=1 DEFAULT CHARSET=utf8mb4 comment = '黑名单表'; -- ---------------------------- -- 白名单表 -- ---------------------------- drop table if exists risk_whitelist; create table risk_whitelist ( white_id bigint(20) not null auto_increment comment '白名单ID', white_type varchar(20) not null comment '白名单类型(1IP 2手机号 3设备 4用户 5邮箱)', white_value varchar(200) not null comment '白名单值', white_name varchar(100) default null comment '白名单名称', reason varchar(500) default null comment '加入原因', source varchar(50) default null comment '来源', expire_time datetime default null comment '过期时间', status char(1) default '0' comment '状态(0正常 1停用)', remark varchar(500) default null comment '备注', del_flag char(1) default '0' comment '删除标志(0代表存在 1代表删除)', create_by bigint(20) default null comment '创建者', create_time datetime default null comment '创建时间', update_by bigint(20) default null comment '更新者', update_time datetime default null comment '更新时间', primary key (white_id), unique key uk_white_value (white_type, white_value) ) engine=innodb auto_increment=1 DEFAULT CHARSET=utf8mb4 comment = '白名单表'; -- ---------------------------- -- 风险评分表 -- ---------------------------- drop table if exists risk_score; create table risk_score ( score_id bigint(20) not null auto_increment comment '评分ID', score_no varchar(64) not null comment '评分编号', user_id bigint(20) default null comment '用户ID', user_name varchar(50) default null comment '用户名称', score_type varchar(20) default null comment '评分类型', total_score decimal(10,2) default 0.00 comment '总分', base_score decimal(10,2) default 0.00 comment '基础分', rule_score decimal(10,2) default 0.00 comment '规则分', behavior_score decimal(10,2) default 0.00 comment '行为分', credit_score decimal(10,2) default 0.00 comment '信用分', risk_level varchar(20) default null comment '风险等级', evaluation text default null comment '评估说明', status char(1) default '0' comment '状态(0正常 1失效)', remark varchar(500) default null comment '备注', evaluate_time datetime default null comment '评估时间', del_flag char(1) default '0' comment '删除标志(0代表存在 1代表删除)', create_by bigint(20) default null comment '创建者', create_time datetime default null comment '创建时间', update_by bigint(20) default null comment '更新者', update_time datetime default null comment '更新时间', primary key (score_id), unique key uk_score_no (score_no) ) engine=innodb auto_increment=1 DEFAULT CHARSET=utf8mb4 comment = '风险评分表';