博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
系统操作日志设计(转载)
阅读量:6721 次
发布时间:2019-06-25

本文共 1241 字,大约阅读时间需要 4 分钟。

前言

 

我们在做企业管理系统时,有多多少少都有对数据的完整性有所要求,比如要求系统不能物理删除记录,要求添加每一条数据时都要有系统记录、或者更新某条数据都需要跟踪到变化的内容、或者删除数据时需要记录谁删除了,何时删除了,以便误删后可以通过系统的XXX功能来恢复误删的数据。

我将这种功能称为操作日志

为什么要做操作日志?

其 实上文也描述了一些,其主要目的就是跟踪到每一个用户在系统的操作行为,如对数据进行查询、新增、编辑或删除甚至是登录等行为。更进一步的理解可以说是对 用户使用系统情况的跟踪,对数据的跟踪防止数据意外删除、更改时有所记录,有所依据,以便对数据的还原,从某种程序上可以保护数据的完整性。

 

系统设计

场景

我们现在有一张表叫Employee:

ID int
Name nvarchar(50)
Gender nvarchar(2)
DateCreated datetime
CreateUser nvarchar(50)

在aspx页面中可能会有EmployeeEdit.aspx(用来添加或更新Employee信息等操作),EmployeeList.aspx(用来查询或进行删除Employee信息等操作)

好了,现在我们要对Empoyee表操作的信息做一个系统日志,那怎么办?

也许你可以建立多一个表跟Employee表一模一样的,叫做EmployeeLog

ID int
Name nvarchar(50)
Gender nvarchar(2)
DateCreated datetime
CreateUser nvarchar(50)
LogCreated datetime
OperationType int

其中加多了一些附属的信息如LogCreated(日志添加日期)和OperationType(查询、新增、删除、更新)

此时这种情况可能大家在做用户登录日志的时候是一件很常见的事件。

但……问题来了,假如我需要对表EmployeeIncome(员工的收入情况)做日志那怎么办?

好建立多一张表叫EmployeeIncomeLog来记录员工收入情况的操作日志。

假如又需要对表FixedAsset(固定资产)进行日志记录那又怎么办?

 

好了,大家可能意识到我们这样做不但会造成表数量的增倍,而且大大的增加了工作量和开发时间,对数据库表不易管理等情况。

 

因此我们需要一个能够通过简单的配置和编写就可以完成以上功能的日志管理

数据库设计

包括三个表,

LogSetting(日志设置)——用来存储配置业务表名、业务名称、主键等

LogSettingDetail(日志设置明细)——用来存储配置业务表需要记录的详细内容,如Employee表中,我们可能需要记录字段Name、Gender等信息。

LogOperation(操作日志)——用来记录用户对各种业务操作的内容情况。

 

下篇将讨论用代码如何实现日志管理的功能,下面先来几张图:

日志列表:

查看日志内容:

转载地址:http://xrcmo.baihongyu.com/

你可能感兴趣的文章
想做好SEO,必须得有一颗坚持不懈的心。
查看>>
大型 Java 应用后台重构技术策略详解
查看>>
cp:复制文件或目录
查看>>
Web服务器父与子 Apache和Tomcat区别
查看>>
Linux中磁盘的分区管理
查看>>
Linux中常见日志文件的介绍
查看>>
PDF文件怎么转换成图片
查看>>
VRRP、BGP协议相关知识整理
查看>>
超实用的pcb线路板设计问答题汇总
查看>>
为apt-get设置http代理服务
查看>>
《挨踢人物传》开篇:寻人启事+意见征集
查看>>
Live555源代码解读(1)
查看>>
jquery对dom节点的操作
查看>>
Zabbix添加对Zookeeper集群的监控
查看>>
shell 游戏系列 扫雷
查看>>
批处理也玩创建快捷方式
查看>>
atof函数扩充
查看>>
Python-functools模块
查看>>
xmake高级特性之选项绑定
查看>>
路由原理——多宿主网络案例分析(二)
查看>>