2012-03-03 56 views
0

可能重复:
User Activity Profile and Statistics记录用户活动

我要记录在我的web application.I用户的活动正在谈论的是只下表

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

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

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

哪个选项是投注者,为什么EOR你提出任何其他选项

有在数据库中的许多表,我只是需要大约两个表(用户和运动)

回答

2

有优点和缺点,这两种解决方案

开展此项活动在应用层记录一般会更容易实现,比数据库触发器更灵活,但不会像健壮的,也不能保证在datab所有活动都被记录下来。

在另一方面,在开展此项活动在数据库层登录时要保证稳健性是有用的,但弹性较差,且可能不是跨越SQL实现便携。

你的决定应该基于自己的需求是什么。

使用应用层级别的记录,如果:

  • 登录活动需要复杂的逻辑
  • 你想要的代码跨数据库实现是便携
  • 这是不是世界如果你结束错过一些东西

使用数据库层级别的记录,如果:

  • 在活动日志中的数据是简单,并不需要很多的逻辑来创造
  • 如果数据库可移植性是不是一个问题
  • 你要保证所有活动都记录
1

它不是从你的问题不清楚,但因为你是在谈论一个web应用我假设您使用的是带有从web.config一个连接字符串的标准asp.net的方法,连接池等。

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

如果我的假设是正确的,登录数据库将不会泄露真实用户,只是用于连接到数据库的通用用户。因此,在知道真实用户的应用程序中执行它可能会更好。