我正在为中型企业设计一个内部网系统。我应该为所有模块保留一个单独的日志表,还是将其分开?
审计日志保留了所有管理员/员工活动(创建、更新、删除对象),并且日志结构对任何类型的模块都是通用的。
另外,如果我根据日志记录拉取报告,这是不是一个好主意?我的日志表保存了对象类型和对象id,这样我就可以根据事件、对象名称和对象id随时获取任何对象的数据。
在这种情况下,最好的报道方法是什么?
发布于 2009-04-26 11:11:54
那么,当你去查看你的日志时,你更愿意做的是,在一个你可以看到所有东西的地方查看,还是必须检查几个不同的地方,每个地方都只显示系统的一部分?
请记住,对于单个表,过滤掉不相关的条目或用户无权查看的条目是微不足道的。将几个单独的日志组合成一个单一的、综合的视图有点棘手,此外,在大多数设计下,它还有一个额外的缺点,即在每次添加新的日志表时,都需要重新访问进行合并的代码。
我肯定地说,单个日志更可取。我能想到的唯一适合多个隔离日志的情况是,如果安全问题足够强烈,要求具有不同可见性的日志条目必须在物理上隔离-在这种情况下,您可能会考虑单独的日志服务器,而不仅仅是单独的表。
发布于 2009-04-26 10:02:58
参见log4php。log4j通过引入日志层次和级别解决了许多日志记录问题。我不知道log4php有多好,但它应该是一个入门级的。
发布于 2009-04-26 10:22:43
我想是一张桌子。
例如,您可能想要查找所有模块的用户活动(如果我理解正确的话)。把自己借给一张桌子。
报告您的日志表将是正常的。您可以将负载分载到单独的报告数据库中,以减少对记录表的争用和负载。
最后,我会显式地存储对象名称和类型(数据库对象)。如果您删除并创建,则ID将更改。或者,例如,一个表可能会变成一个视图,因此它的类型和objectid都会改变。
https://stackoverflow.com/questions/790577
复制相似问题