【问题标题】:Record User Activities in database [duplicate]在数据库中记录用户活动 [重复]
【发布时间】:2012-03-03 05:06:47
【问题描述】:
可能重复:
User Activity Profile and Statistics
我想在我的 Web 应用程序中记录用户活动。我说的只是下表
Table 1:User<br>
Table 2:Sports<br>
Table 3:UserActivity
选项 1:
如果用户登录/注销/无效登录或运动插入/更新/删除。我登录
活动表中 C# 代码中针对活动类型的活动。
选项 2:
我可以使用数据库中的触发器来记录用户活动。
哪个选项是投注者以及您为什么建议任何其他选项
数据库中有很多表,我只取了两个表(用户和运动)
【问题讨论】:
标签:
c#
asp.net
.net
sql-server
database
【解决方案1】:
两种解决方案各有利弊
在应用层实现活动日志记录通常比数据库触发器更容易实现和更灵活,但不会那么健壮,并且不能保证数据库中的所有活动都会被记录。
另一方面,当您想要保证稳健性时,在数据库层实现活动日志记录很有用,但灵活性较差,并且可能无法跨 SQL 实现移植。
您的决定应基于您的需求。
在以下情况下使用应用层级日志记录:
- 记录活动需要复杂的逻辑
- 您希望代码可跨数据库实现移植
- 如果你错过了一些东西,这不是世界末日
在以下情况下使用数据库层级日志记录:
- 活动日志中的数据很简单,不需要大量的逻辑来创建
- 如果数据库可移植性不是问题
- 您希望保证所有活动都被记录
【解决方案2】:
您的问题并不清楚,但由于您在谈论一个网络应用程序我假设您正在使用标准的 asp.net 方法和来自 web.config 的一个连接字符串,连接池等。
在这种情况下,应用程序中的所有用户都将使用相同的数据库用户。
如果我的假设是正确的,登录数据库不会显示真实用户,只会显示用于连接数据库的通用用户。因此,最好在您了解真实用户的应用程序中执行此操作。