你可以看看那些真正一看就特别是用的框架,哪一个不是从细节出发,这样才显得有框架的架构!比如说,如果我们具体到SQL Server的触发器,那么也就是明白了。不知道你是从何而来的设计。如果用户根本不需要,那么最好不要让电脑花费巨大的代价去记录什么。

解决方案 »

  1.   


    没有更好,只有用最低级的的东西来忽悠这个所谓的“更高层次”操作。比如直截了当说“SQL Server 触发器”,这谁都懂。
      

  2.   

    我想你应该好好看一下AOP到底指的是什么!!既然你已经明白系统异常日志记录 怎么做那么是用户操作日志记录实际是同样原理。 切面编程的切面不止包括异常处理,但凡可以成面状散布在系统的东西,实际都可以这么做,包括权限,包括日志ps:另外和老p想法一致,这种要求本身带有不合理性,客户实际上并不需要所有操作记录,客户在实际操作中了不起需要一些关键信息的更改记录,如果夸大记录范围,实际上作用并非很大,相反还意味着你必须去做一种信息评价工作,去给客户参考是否有类似“入侵”操作判定,这样无形当中给你的系统“镀了金”,真的需要这样的“镀金”吗?大部分情况下是不需要滴,如果真需要,那实际上是另外一个项目---入侵检测系统了
      

  3.   

    另外
    增、删、改、查”的“业务SQL”里嵌入“日记记录SQL”其实大部分数据库本身就有类似工作,比如mssql,除了你的数据库文件以外,本身就有log日志文件,数据库里任何变动其实都已经在日志文件当中记录了
      

  4.   

    有,继续你的sqlConnection,可在你的执行语句上,再包装一层,然后在公用 的SQL语句中,查是否有DELETE INSERT UPDATA即可,一般都是这么做的。你
    sql="INSERT tab(a,b) VALUES('a','b')";
    ComDB.Exec(sql);Exec是你的封装函数
    int Exec(string sql)
    {
      if(sql.转成大写.Find("INSERT","DELETE","UPDATA"))
    {
                LOG
    }
    }