db9c79c0
“wangming”
feat: punch-based...
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
|
-- =============================================================================
-- R-001:用户主档字段级变更审计(与《用户主档与薪酬考勤改造记录》R-001 详细设计一致)
-- 说明:
-- 1. 主键 F_Id 须由应用层 YitIdHelper.NextId().ToString() 生成,勿在 MySQL 内调用 C#。
-- 2. 与 BASE_USER 更新同事务插入;敏感字段禁止明文写入 F_OldValue/F_NewValue。
-- 3. 多租户:与 BASE_USER 一致走 SqlSugar Tenant。
-- =============================================================================
CREATE TABLE IF NOT EXISTS `lq_user_profile_audit` (
`F_Id` varchar(50) NOT NULL COMMENT '主键',
`F_TargetUserId` varchar(50) NOT NULL COMMENT '被变更用户 BASE_USER.F_Id',
`F_OperatorUserId` varchar(64) DEFAULT NULL COMMENT '操作人用户ID',
`F_OperatorUserName` varchar(128) DEFAULT NULL COMMENT '操作人姓名(冗余)',
`F_OperateTime` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '操作时间',
`F_Action` varchar(64) NOT NULL COMMENT '操作类型,见改造文档枚举:PROFILE_UPDATE/PROFILE_CREATE/PROFILE_DELETE_SOFT/ENABLE_TOGGLE/ADMIN_RESET_PASSWORD/CURRENT_MODIFY_PASSWORD/CURRENT_BASE_INFO/CURRENT_THEME/CURRENT_LANGUAGE/CURRENT_AVATAR/RELATION_BATCH_POSITION/RELATION_BATCH_ROLE 等',
`F_BatchId` varchar(50) DEFAULT NULL COMMENT '同一次请求批次ID(UUID),多字段同一保存共用',
`F_FieldKey` varchar(64) NOT NULL COMMENT '属性名(与 UserEntity 一致),如 Mdid、OrganizeId、Gw;密码行为 Password;元事件可用 __META__',
`F_FieldLabel` varchar(64) DEFAULT NULL COMMENT '中文展示名',
`F_OldValue` text COMMENT '变更前原始值(敏感字段脱敏或占位符)',
`F_NewValue` text COMMENT '变更后',
`F_Source` varchar(32) NOT NULL DEFAULT 'API' COMMENT 'API/OAUTH/RELATION_SERVICE/PORTAL/BATCH_IMPORT/SYSTEM',
`F_ClientIp` varchar(64) DEFAULT NULL COMMENT '客户端 IP(可选)',
`F_UserAgent` varchar(500) DEFAULT NULL COMMENT 'UA(可选,截断)',
`F_Remark` varchar(500) DEFAULT NULL COMMENT '备注(如失败回滚说明、导入批次号)',
PRIMARY KEY (`F_Id`),
KEY `IX_lq_user_profile_audit_Target_Time` (`F_TargetUserId`,`F_OperateTime`),
KEY `IX_lq_user_profile_audit_Batch` (`F_BatchId`),
KEY `IX_lq_user_profile_audit_Operator_Time` (`F_OperatorUserId`,`F_OperateTime`),
KEY `IX_lq_user_profile_audit_Action_Time` (`F_Action`,`F_OperateTime`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='用户主档字段级变更审计';
-- -----------------------------------------------------------------------------
-- 若线上已按旧版脚本建表(无 F_Action/F_ClientIp 等),可手工执行(列已存在则跳过):
-- ALTER TABLE `lq_user_profile_audit` ADD COLUMN `F_Action` varchar(64) NOT NULL DEFAULT 'PROFILE_UPDATE' COMMENT '操作类型' AFTER `F_OperateTime`;
-- ……按详细设计逐列补充并调整 NOT NULL 默认值策略。
-- -----------------------------------------------------------------------------
-- 可选方案 B:复用 lq_business_operation_log(不写本表),见改造文档「方案 B」。
-- ALTER TABLE `lq_business_operation_log`
-- ADD KEY `IX_lq_business_operation_log_Biz_Time` (`F_BizType`,`F_BizId`,`F_OperateTime`);
|