在数据库中记录用户活动

时间:2012-03-03 05:06:48

标签: c# asp.net .net sql-server database

  

可能重复:
  User Activity Profile and Statistics

我想在我的网络应用程序中记录用户活动。我只是在谈论表格

Table 1:User<br>
Table 2:Sports<br>
Table 3:UserActivity

选项1:
   如果用户登录/注销/无效登录或体育插入/更新/删除。我登录 活动表中C#代码与活动类型的活动。

选项2:
我可以在数据库中使用触发器来记录用户活动。

哪个选项是bettor,为什么你建议任何其他选择

数据库中有很多表,我只是拿了两张桌子(用户和运动)

2 个答案:

答案 0 :(得分:3)

两种解决方案都有利弊

在应用程序层中实现活动日志记录通常比数据库触发器更容易实现且更灵活,但不会那么健壮,并且无法保证数据库中记录所有活动。

另一方面,当您想要保证健壮性但是灵活性较差,并且可能无法跨SQL实现移植时,在数据库层中实现活动日志记录非常有用。

您的决定应基于您的需求。

在以下情况下使用应用程序层级日志记录:

  • 记录活动需要复杂的逻辑
  • 您希望代码可以跨数据库实现移植
  • 如果你错过了一些东西,那不是世界末日

在以下情况下使用数据库层级日志记录:

  • 活动日志中的数据很简单,不需要很多逻辑来创建
  • 如果不担心数据库可移植性
  • 您希望保证记录所有活动

答案 1 :(得分:1)

您的问题并不清楚,但是因为您正在讨论网络应用程序我假设您正在使用标准的asp.net方法,其中包含来自web.config的一个连接字符串,连接池等。

在这种情况下,应用程序中的所有用户都将使用相同的数据库用户。

如果我的假设是正确的,登录数据库将不会显示真实用户,只会显示用于连接数据库的通用用户。因此,最好在您了解真实用户的应用程序中执行此操作。