2014-01-27 17 views
0

您好,我需要您的建议。我有两张表:州和县,每个州可以有一个或多个县有关。我有两个下拉菜单,一个是州和另一个是县。每次用户选择一个状态ajax请求时,查询数据库并查找相应的状态县。如果用户不在数据库中,用户也可以添加更多的县。在会话中保存州和县名单

我想在PHP用户会话中保存所有州和县,为了不查询数据库所有的时间,问题出现时有人添加一个新的县我可以更新该用户的会话变量,但其他人用户不知道数据库中是否有新的县。

你认为保存会话或查询数据库多次是个好主意吗?我也接受其他解决方案。 谢谢

+2

不要将该信息存储在SESSION中,将其存储在数据库中。 –

回答

2

如果数据库正确编制索引,应该没有必要这样做。

由于会话数据文件必须在每次使用会话的请求上加载和解析,所以在大量数据的情况下,甚至有可能将数据存储在会话中会降低总体体验。

+0

因此,如果表格正确索引,没有必要使用缓存? –

+0

@Jorge *在这个特定的情况下,*是的。在会话中存储列表没有任何意义。在其他情况下,单独的缓存层很有意义。 –

+0

这是你在学校学不到的东西,谢谢 –

1

这是很多会话数据。会话数据存储在服务器上。您会以任何方式将数据从服务器发回给用户,但会在需要该数据的每个用户的会话中复制该数据。

我会把它作为一个查找来实现,因为这个列表太长了,而且可能会增长,并且如果它成为一个问题,它可能会在后面担心。您可以缓存查询和结果以保存每次在db上运行的查询和结果,并且在添加新的县时将其清除并再次缓存。另外,你可以保存列表存储在一个数组在PHP中,但这是真正理想的小枚举。

+0

不一样,那不是会话的工作方式。你似乎在与cookies的混淆会话 – 2014-01-27 19:53:36

+0

对不起,修改! – StringsOnFire