对于我在ASP.NET网站上关注的典型用户注册和会员系统,我想更新上次活动的日期和时间。以下哪种方法最适合遵循。
每当请求访问来自用户帐户表的数据的方法时,使用last_account_activity
GETDATE()
日期
在从会员系统调用方法后,将UpdateLastActivity()
作为外部方法调用。
信息:
在可靠性方面,#2是理想的,因为当用户主动使用来自其他表而不是用户帐户表的数据时,我不能依赖#1。
你怎么看?你还有另一种方法吗?.NET Framework 2.0
Asp.net 2.0
自定义成员资格提供程序实施
Sql Server 2005数据库
答案 0 :(得分:5)
方法2优于1.
<强>建议强>
您可以采用异步方式执行此操作。您只需触发方法UpdateLastActivity()
并忘记结果。这样,您的应用程序的性能就不会受到阻碍。
希望这适合你。
答案 1 :(得分:2)
不清楚你的系统是如何构建的(因为它实际上是一个根点),但考虑到你说#2
解决方案更好(从调用路径的角度来看),我会寻求更可靠的解决方案当然,除非它不会损害性能并且不会给我的用户带来挫败感。
如果您正在处理DataBase
(问题也不是很清楚),这里的常用方法是使用绑定到表格的触发器。
答案 2 :(得分:1)
我个人认为这些方法应该分开。这纯粹是因为方法的名称应该反映其目的。因此,将“更新”功能放在未命名的方法中并不是一种很好的做法。
答案 3 :(得分:0)
在我看来,这是一个设计模式问题。我对你的架构了解不多,所以代码可能会改变,但我的基本想法是将每个活动定义为实现相同界面的类,如下所示:
public interface IMemberActivity {
void Execute(IMemberActivityLogger logger);
}