我应该将站点重要数据保存到数据库

时间:2011-09-05 06:38:48

标签: c# asp.net-mvc database session

在我的网站上,当某个用户创建个人资料时,他也会选择他的学校名称。学校在数据库中有表格。应用程序中的主页应显示有关用户学校的一些数据。并且有一些链接显示基于学校ID的内容。

现在我有两个选择:

  1. 当用户登录时,我会根据用户ID获取SchoolID并将其保存在会话中?
  2. 每当我需要打开请求schoolID的东西时,我会根据用户ID发送调用数据来获取schoolID吗?
  3. 别的。
  4. 性能和安全性是我的特性,因为很多用户都是。

1 个答案:

答案 0 :(得分:1)

通过缓存schoolId获得的性能提升非常小,2号是您的最佳选择。基于userId获取schoolId将是一个非常快速的查找。数字1有可能在用户编辑学校时忘记更新会话的错误。它还假设schoolId仅在会话中设置。通过导入更新或管理更新来破坏该假设的那一天,会话将与数据不匹配,并且可能会出现各种问题。

当然,获取学校数据应该是一个命令:     选择School。* from School inner join User on User.SchoolId = School.SchoolId,User.UserId = @UserId