33 lines
2.0 KiB
SQL
33 lines
2.0 KiB
SQL
-- 通用操作日志表(记录所有用户在所有模块的操作)
|
||
CREATE TABLE `sys_operation_log` (
|
||
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '日志ID',
|
||
`tenant_id` int(11) NOT NULL DEFAULT 0 COMMENT '租户ID(0表示平台操作,>0表示租户操作)',
|
||
`user_id` int(11) NOT NULL COMMENT '操作用户ID',
|
||
`username` varchar(50) NOT NULL COMMENT '操作用户名',
|
||
`module` varchar(100) NOT NULL COMMENT '操作模块(user/tenant/dict/role等)',
|
||
`resource_type` varchar(50) NOT NULL COMMENT '资源类型(如User/Tenant/Dict等)',
|
||
`resource_id` int(11) NULL COMMENT '资源ID(如被操作的用户ID、租户ID等)',
|
||
`operation` varchar(20) NOT NULL COMMENT '操作类型(CREATE/UPDATE/DELETE/LOGIN/LOGOUT/VIEW等)',
|
||
`description` varchar(500) NULL COMMENT '操作描述',
|
||
`old_value` longtext NULL COMMENT '修改前的值(JSON格式,用于UPDATE操作)',
|
||
`new_value` longtext NULL COMMENT '修改后的值(JSON格式,用于UPDATE操作)',
|
||
`ip_address` varchar(50) NULL COMMENT 'IP地址',
|
||
`user_agent` varchar(500) NULL COMMENT '用户代理信息',
|
||
`request_method` varchar(10) NULL COMMENT '请求方法(GET/POST/PUT/DELETE等)',
|
||
`request_url` varchar(500) NULL COMMENT '请求URL',
|
||
`status` tinyint(1) NOT NULL DEFAULT 1 COMMENT '1-成功,0-失败',
|
||
`error_message` text NULL COMMENT '错误信息',
|
||
`duration` int(11) NULL COMMENT '执行时长(毫秒)',
|
||
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '操作时间',
|
||
PRIMARY KEY (`id`),
|
||
KEY `idx_tenant_id` (`tenant_id`),
|
||
KEY `idx_user_id` (`user_id`),
|
||
KEY `idx_module` (`module`),
|
||
KEY `idx_resource_type` (`resource_type`),
|
||
KEY `idx_resource_id` (`resource_id`),
|
||
KEY `idx_operation` (`operation`),
|
||
KEY `idx_create_time` (`create_time`),
|
||
KEY `idx_tenant_user_time` (`tenant_id`, `user_id`, `create_time`),
|
||
KEY `idx_tenant_module_time` (`tenant_id`, `module`, `create_time`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='系统操作日志表';
|