扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
自定义日志管理的数据库设计
自定义日志系统是校园网一卡通系统中机房刷卡子系统的一个基于B/S开发的功能模块,该系统的后台数据库为自定义格式的数据库系统。数据库中主要的用户表和日志表的结构如下:
Structure FixUse '用户表 Public ID As Integer '用户ID <VBFixedArray(15)> Public NoCard() As Byte '卡号 <VBFixedArray(15)> Public NoUser() As Byte '学号 <VBFixedArray(15)> Public Name() As Byte '姓名 <VBFixedArray(15)> Public PSW() As Byte '密码 Public Dept As Integer '部门ID Public Attr As Integer '机房总管 Public AttreEx As Integer '机房总管扩展 Public Money As Integer '帐户金额 Public Power As Integer '用户权限 Public PowerEx As Integer '用户权限扩展 Public MoneyEx As Integer '帐户金额扩展 <VBFixedArray(31)> Public Rev() As Byte '系统, End Structure Structure FixLog '上下机、交费日志表 Dim ID As Integer '流水号 Dim Type As Integer '事件类型 <VBFixedArray(5)> Dim DateTime() As Byte '上机开始时间,若为交费,则为空 <VBFixedArray(5)> Dim MAC() As Byte '指定上机IP地址 Dim ManagerID As Integer '收费管理员ID Dim UserID As Integer '用户ID Dim Money As Integer '消费或交费金额 Dim ID_EquipMent As Integer '上机设备号 <VBFixedArray(5)> Dim DateTimeEnd() As Byte '下机时间 Public Location As Int64 '系统保留 <VBFixedArray(13)> Dim revex() As Byte '保留 End Structure |
系统日志管理模块对用户上机、交费记录实现查找、统计、分析、图示、打印等功能。
业务逻辑层包装在用VB.NET开发的后台类库中。
本自定义日志管理系统功能模块结构如图2所示。因为本系统是面向所有用户,包括系统管理员,辅助管理员,和普通上机学生,所以在功能上必须对不同用户加以限定。
查询该用户密码和余额
查询该用户上机、交费日志
统计、图示、打印、上机、交费
查看用户数据库总余额
按日期顺序重新排序日志文件,然后写入日志文件
查某个用户的密码、余额
查询
|
<forms name="cookie-name" path="/" loginUrl="/webchongyuan/login.aspx" protection="Encryption" timeout="10" /> </authentication> |
LoginType = UseServer.LoginIn(txtName.Text.Trim, txtPass.Text.Trim) '获得权限级别 Session("LoginType") = LoginType '将权限级别存储在会话中 Select Case LoginType Case DataType.Data.LoginType.SUPUERMANAGER '高级管理员 FormsAuthentication.RedirectFromLoginPage(txtName.Text, False) clsDebug.DebugFileOut(txtName.Text & vbTab & Now.ToString) Response.Redirect("entertime.aspx") '转向后续页面 Case DataType.Data.LoginType.NORMALMANAGER, DataType.Data.LoginType.NORMALUSER '辅助管理员或一般用户,在后续页面中通过Session来区别权限 FormsAuthentication.RedirectFromLoginPage(txtName.Text, False) clsDebug.DebugFileOut(txtName.Text & vbTab & Now.ToString) Response.Redirect("entertime.aspx") Case DataType.Data.LoginType.NOUSER '用户不存在 txtName.Text = "" lblMsg.Text = "用户名不存在" End Select |
Private Sub RemovedCallBackLog(ByVal key As String, ByVal Value As Object, ByVal Reason As CacheItemRemovedReason) '当缓存超时,自动调用该函数 BuildLogCache() End Sub Private Sub BuildLogCache() '重建日志缓存,重新读取磁盘数据到内存 Dim UseServer As clsUseServer '用户服务对象,处理用户数据的各种需求 Dim LogServer As clsLogServer '日志服务对象,处理日志数据的各种需求 Dim strUseMsg As String '给用户显示的信息 Dim CacheTime As String '日志在内存中缓存的时间 Dim onRemove As New CacheItemRemovedCallback(AddressOf Me.RemovedCallBackLog) '回调 Try If IsNothing(Cache("UseServer")) Then BuildUseCache()'若用户缓存为空,则重建用户缓存(日志服务对象中要使用用户服务对象) UseServer = CType(Cache("UseServer"), clsUseServer) '将用户服务对象缓存 clsLogFunction.LogHebin() '在管理员登录时,合并日志文件 LogServer = New clsLogServer(UseServer) '从用户服务对象新建日志服务对象 CacheTime = ConfigurationSettings.AppSettings("LogCacheTime") '从Web.config中获得缓存日志对象的时间 Cache.Insert("LogServer", LogServer, Nothing,DateTime.Now.AddMinutes(CInt(CacheTime)), TimeSpan.Zero, CacheItemPriority.Normal, onRemove) '将日志服务对象缓存 Catch ex As Exception clsDebug.DebugFileOut(ex.Message) '记录异常信息 End Try End Sub |
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者