在会话中存储用户的配置数据有什么问题吗?

时间:2013-04-01 20:56:37

标签: php mysql session

对于网站,我希望用户选择网站的外观,例如,如果用户选择“黑暗”主题,它会更新数据库中的一行(使用“配置”表或仅调用一列用户表中的“主题” - 尚未确定)

但是,登录时,在会话中存储配置选项是否有任何问题,或者我应该只在会话中存储ID并在每次加载页面时查询数据库以获取用户信息?

我确信会话选项对资源来说会好很多,但它有缺点(当然在更改选项时我需要确保会话值也更新)?

更新(带代码):

选项1:在每个页面加载时查询数据库 - >获取值(“暗”或“亮”,并使用它来显示正确的主题) 选项2:用户登录,将“dark”或“light”设置为会话变量,并使用此选项显示正确的主题

1 个答案:

答案 0 :(得分:1)

我会像你在选项2中所说的那样完成。

在我看来,最好在会话中“缓存”用户相关数据。这包括可能在您的页面中经常使用的任何内容。

保存尽可能多的数据库查询总是更好,因为数据库通常是网站性能的瓶颈。尽管可能存在始终获取最新数据至关重要的情况。

如果每个页面请求都有一个附加查询,那么在某些时候,这可能会成为性能方面的重要因素。

正如您已经提到的那样,更新会话和数据库非常重要。对我来说,这是唯一的缺点,至少如果我们想这样称呼它。