我有一个基于用户的网络应用程序,我正在整理。系统在登录时创建用户对象,然后将其存储在会话数组中。在每个页面加载时,系统根据存储在数据库中的会话密钥验证会话数据,并检查是否有任何与用户相关的数据已更改(用户表中的bool标志)。如果数据已更改,则重新创建用户对象,否则我将使用存储在会话中的用户对象。它看起来像:
session_start();
if (isset($_SESSION['name']))
{
$flags = get_session_flags($_SESSION['session_key']);
if (!$flags['valid_session_key'])
{
logout();
redirect_to_home();
}
if ($flags['user_data_changed'])
{
$user = recreate_user_object();
}
else
{
$user = $_SESSION['user'];
}
}
我关心的是php / mysql服务器性能。在页面加载之间存储用户对象可能会遇到哪些问题?我应该总是从数据库中提取数据吗?它包含大量信息,包括存储在用户对象中的几个基于活动的对象。
感谢您的帮助。
答案 0 :(得分:0)
系统在。创建用户对象 登录然后将其存储在 会话数组。
什么构成用户对象?您将使用多少User对象?您是否经常需要它提供的所有数据?
在每个页面上加载系统验证 针对会话密钥的会话数据 存储在数据库中并检查 查看是否有与用户相关的任何数据 已经改变了(bool flag in the 用户表)。
用户数据的更新频率是多少?如果只在几页上更新,那么检查每个页面加载似乎有点多。上一个问题仍然适用于构建重建User对象的内容。