【问题标题】:Save list of states and counties in session or not保存或不保存会话中的州和县列表
【发布时间】:2014-01-27 19:45:08
【问题描述】:

您好,我需要您的建议。我有两张表:州和县,每个州可以有一个或多个相关的县。我有 2 个下拉菜单,一个用于州,另一个用于县。每次用户选择一个州时,都会发出一个 ajax 请求,查询数据库并查找该州的相应县。如果他们不在数据库中,用户还可以添加更多的县。

我正在考虑在 PHP 用户会话中保存所有州和县,为了不一直查询数据库,当有人添加新县时出现问题,我可以为该用户更新会话变量,但其他用户不知道数据库里有没有新的县。

您认为将其保存在会话中或多次查询数据库是一个好主意吗?我也对其他解决方案持开放态度。 谢谢

【问题讨论】:

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

标签: php session


【解决方案1】:

如果数据库已正确索引,则无需执行此操作。

对于大量数据,将数据存储在会话中甚至可能会降低整体体验,因为必须在使用会话的每个请求上加载和解析会话数据文件。

【讨论】:

  • 那么如果表被正确索引就不需要使用缓存了吗?
  • @Jorge 在这种特殊情况下, 是的。将列表存储在会话中是没有意义的。在其他情况下,单独的缓存层可能很有意义。
  • 那种东西你在学校学不到,谢谢
  • 注意 - 在会话中“缓存”数据与缓存查询不同
【解决方案2】:

这是很多会话数据。会话数据存储在服务器上。无论哪种方式,您都会将该数据从您的服务器发送回用户,但它会在每个需要该数据的用户的会话中复制。

我会将它作为查找来实现,因为列表很长,并且可能会增长,并且如果它成为问题,以后会担心性能。您可以缓存查询和结果以保存它每次在数据库上运行,并在添加新县时将其清除以再次缓存。或者,您可以将列表存储在 php 中的数组中,但这对于较小的枚举非常理想。

【讨论】:

  • 不,这不是会话的工作方式。您似乎将会话与 cookie 混淆
猜你喜欢
  • 2011-12-08
  • 2013-07-11
  • 2021-02-20
  • 2013-08-27
  • 1970-01-01
  • 1970-01-01
  • 2022-11-25
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多