http://www.cnblogs.com/hooray/archive/2012/09/05/2672133.html
管理系统的操作日志如何做成通用的模块一直是个让我头疼的问题,不过看了博客园里的某篇文章后,现在基本解决了。
相关文章链接:《系统操作日志设计》
在开始做之前,必须把两个日志分清楚,那就是普通操作日志和业务操作日志,这两者有何区别?
在我理解,普通操作日志就是单表的操作记录,而业务操作日志则就是一系列的普通操作日志的集合。
打个比方,用户需要购买一样宝贝,已经到了下单那步,下单就是个业务,这个业务背后就是一系列的业务,如:
生成订单 → 生成商品快照 → 发送一条站内信 → 删除购物车里对应宝贝
这样一个下单操作就包含了4部分,可以把这4部分看成是4张表,分别对这4张表进行对应的操作,就实现了业务。
但今天我要讲的不是业务操作日志,因为不同项目的业务不尽相同,所以它无法做成通用模块,而我要讲的,就是普通操作日志。
上面解释了一大段,下面干货就要亮相了,先洗把脸清醒下。
……
首先,哪些地方需要记录操作日志?执行insert、update、delete这3个操作的时候,就需要进行日志,而日志执行的先后顺序如下
insert | 在insert后执行 |
update | 在update前后都要执行,操作前获取操作前数据,操作后获取操作后数据 |
delete | 在delete前执行 |
顺序清楚后,就来看下我写的一份日志操作类吧,第一版随便谢谢的,重复代码有点多,还未来得及优化。
使用前,需要引入数据库操作类,这是我之前写的一份,可参考《全新的PDO数据库操作类(仅适用Mysql)》。
引入之后,就可以开始使用了。
select
1
|
$log ->insert(82, 'tb_member' );
|
update
1
2
3
|
$log ->updateStart(82, 'tb_member' );
//中间放更新操作代码 $log ->updateEnd();
|
delete
1
|
$log -> delete (82, 'tb_member' );
|
可以看到,一共只需要两个参数即可,分别是表ID(主键)和表名称。
另外需要强调一点,表注释和字段注释一定要完整,因为记录的信息包含注释,目的就是为了查阅的时候能清楚哪个字段是干什么用的。
下面就看下成品吧
最后把表结构分享下,一共2张表,一张主表一张从表,主表记录操作表及操作人等信息,从表记录操作的表字段信息。
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
|
-- ---------------------------- -- Table structure for `tb_log` -- ---------------------------- CREATE TABLE `tb_log` (
`tbid` bigint (20) NOT NULL AUTO_INCREMENT,
`adminid` bigint (20) DEFAULT NULL COMMENT '管理员id' ,
`type` tinyint(4) DEFAULT '1' COMMENT '操作类型:1新增2修改3删除' ,
`tableid` bigint (20) DEFAULT NULL ,
`tablename` varchar (255) COLLATE utf8_unicode_ci DEFAULT NULL COMMENT '表名' ,
`comment` varchar (255) COLLATE utf8_unicode_ci DEFAULT NULL ,
`dt` datetime DEFAULT NULL ,
PRIMARY KEY (`tbid`)
) ENGINE=InnoDB AUTO_INCREMENT=27 DEFAULT CHARSET=utf8 COLLATE =utf8_unicode_ci;
-- ---------------------------- -- Table structure for `tb_log_content` -- ---------------------------- CREATE TABLE `tb_log_content` (
`tbid` bigint (20) NOT NULL AUTO_INCREMENT,
`logid` bigint (20) DEFAULT NULL ,
`tbkey` longtext COLLATE utf8_unicode_ci,
`tbvalue` longtext COLLATE utf8_unicode_ci,
`currenttbvalue` longtext COLLATE utf8_unicode_ci,
`comment` varchar (255) COLLATE utf8_unicode_ci DEFAULT NULL ,
PRIMARY KEY (`tbid`)
) ENGINE=InnoDB AUTO_INCREMENT=109 DEFAULT CHARSET=utf8 COLLATE =utf8_unicode_ci;
|
相关推荐
通过对事务日志和重做日志的深入了解,DBA可以更好地设计和实施数据库管理策略,提高系统的稳定性和性能。在日常维护中,合理规划日志文件的大小、调整备份策略以及优化检查点设置都是确保数据库健康运行的关键实践...
浅谈仓储物流管理软件操作 仓储物流管理软件操作是仓储物流企业的信息管理系统,旨在提高物流管理效率、降低成本、提高客户满意度。该系统包括仓储物流管理信息系统、业务管理、调度管理、预警及账表管理、系统管理...
毕设-基于web日志挖掘的网络教学系统的设计与实现,整个项目采用MyEclipse+MySQL+JDK1.7工具,已上传资源包括源码及sql数据库,导入可直接运行;采用SSH框架实现课程管理,作业管理,学生在线学习,交互式通信,资源...
"浅谈Linux操作系统安全防范策略" Linux操作系统安全防范策略是当前网络安全的一个重要方面。随着网络的不断发展,网络安全是我们应该时刻注意的问题。本文主要从系统启动和登录的安全性、限制网络访问、Linux病毒...
SQL Server中的事务日志是数据库管理系统的关键组成部分,它在确保数据的持久性和事务一致性方面扮演着核心角色。事务日志的物理结构主要由虚拟日志文件(Virtual Log Files, VLFs)组成,这些文件是日志文件的逻辑...
**事务日志**是SQL Server数据库管理系统的一个关键组件,它记录了所有对数据库进行的更改操作。事务日志的存在确保了数据的一致性和持久性,同时也支持事务的回滚功能。此外,在SQL Server发生故障的情况下,事务...
【文档标题】:“浅谈地铁档案管理系统与第三方应用系统的数据归档接口解决方案” 【文档描述】:本文档探讨了地铁档案管理系统与不同第三方应用系统之间的数据归档接口设计,特别是针对成都地铁档案管理系统与办公...
综合来看,LogMiner是Oracle数据库管理系统中一个强大的日志分析工具,它对于数据库管理员来说,是一个不可或缺的工具,能帮助管理员有效地进行数据恢复、操作跟踪、以及安全审计等工作,确保数据库的正常运行和数据...
服务内容包括现场备件安装、问题管理系统、系统优化等,确保主机和存储设备的高效运行。 七、运维监控管理 运维监控管理涵盖多个方面,如CPU和内存使用、硬盘利用率、系统进程、主机性能、电源和风扇状态、硬盘运行...
- **root用户**:作为Linux系统中的超级用户,root拥有最高的系统权限,能够执行所有操作,包括管理系统文件和配置。它是系统管理员的角色,通常用于系统维护和故障排查。 - **虚拟用户/伪用户/假用户**:这些用户...
Oracle9i数据库管理系统中,控制文件和重做日志文件是关键组件,它们对数据库的稳定性和安全性起着至关重要的作用。控制文件是数据库的核心,它记录了数据库的元数据,包括但不限于数据库名称、创建时间、数据文件和...
总的来说,设计地铁档案管理系统与第三方应用系统的数据归档接口是一项复杂的工作,需要充分考虑系统的异构性、数据量、数据安全和性能要求。通过采用中间数据库接口技术,可以有效地解决这些问题,实现高效、稳定的...
通过对事务日志的理解,不仅可以更好地掌握SQL Server的数据管理和恢复机制,还能在实际应用中有效提升系统的稳定性和性能。无论是在日常维护还是在故障恢复中,事务日志都是SQL Server运维人员必须深入了解的关键...
H3C云计算管理平台的系统管理功能是一套完善的管理系统,它能够实现对云计算资源的集中管理和分配。本文将详细介绍H3C云计算管理平台的各项系统管理功能,并结合实际应用场景进行解释。 一、系统管理功能 (1)...
5. 系统管理:进行系统配置、日志管理,包括口令修改、审核人员配置和系统参数设定。 软件的操作流程相对直观,用户通过登录系统,使用管理员账号(如"admin",密码"1"),可以在左侧功能菜单中选择仓库管理、企业...
浅谈计算机系统的安全防范调研报告 浅谈计算机系统的安全防范 随着计算机及网络技术与应用的不断发展,伴随而来的计算机系统安全问题越来越引起 人们的关注。计算机系统一旦遭受破坏,将给使用单位造成重大经济损失...
在进阶阶段,Spring与Struts和Hibernate的整合是提升整体应用效能的关键,例如通过Spring管理Struts的Action和Hibernate的SessionFactory,实现统一的事务管理,这样不仅可以减少代码量,还能增强系统的稳定性和可...
随着现代信息技术的飞速发展,尤其是在大数据时代背景下,交通管理领域的数据量呈现爆炸式增长,这对传统的交通管理系统提出了新的挑战。传统的集中式管理平台由于其单一的架构,难以满足当前对于数据处理的高效率和...
此外,集控中心还支持日志系统,记录系统日志、安全日志、操作日志,实现运维活动的回溯、分析和审计,保证了运维活动的透明性和可追责性。 8. 效率与成本控制 通过集控中心的统一管理,实现了电站和风场的集中采购...
《浅谈医院信息系统的维护和网络安全管理》 随着科技的进步,医院信息系统已成为现代医疗不可或缺的一部分。这些系统在提供高效医疗服务的同时,也面临着日益严峻的网络安全挑战。本文将深入探讨医院信息系统的维护...