保存或不保存会话中的州和县列表
Posted
技术标签:
【中文标题】保存或不保存会话中的州和县列表【英文标题】:Save list of states and counties in session or not 【发布时间】:2014-01-27 19:45:08 【问题描述】:您好,我需要您的建议。我有两张表:州和县,每个州可以有一个或多个相关的县。我有 2 个下拉菜单,一个用于州,另一个用于县。每次用户选择一个州时,都会发出一个 ajax 请求,查询数据库并查找该州的相应县。如果他们不在数据库中,用户还可以添加更多的县。
我正在考虑在 php 用户会话中保存所有州和县,为了不一直查询数据库,当有人添加新县时出现问题,我可以为该用户更新会话变量,但其他用户不知道数据库里有没有新的县。
您认为将其保存在会话中或多次查询数据库是一个好主意吗?我也对其他解决方案持开放态度。 谢谢
【问题讨论】:
不要将该信息存储在 SESSION 中,将其存储在数据库中。 【参考方案1】:如果数据库已正确索引,则无需执行此操作。
对于大量数据,将数据存储在会话中甚至可能会降低整体体验,因为必须在使用会话的每个请求上加载和解析会话数据文件。
【讨论】:
那么如果表被正确索引就不需要使用缓存了吗? @Jorge 在这种特殊情况下, 是的。将列表存储在会话中是没有意义的。在其他情况下,单独的缓存层可能很有意义。 那种东西你在学校学不到,谢谢 注意 - 在会话中“缓存”数据与缓存查询不同【参考方案2】:这是很多会话数据。会话数据存储在服务器上。无论哪种方式,您都会将该数据从您的服务器发送回用户,但它会在每个需要该数据的用户的会话中复制。
我会将它作为查找来实现,因为列表很长,并且可能会增长,并且如果它成为问题,以后会担心性能。您可以缓存查询和结果以保存它每次在数据库上运行,并在添加新县时将其清除以再次缓存。或者,您可以将列表存储在 php 中的数组中,但这对于较小的枚举非常理想。
【讨论】:
不,这不是会话的工作方式。您似乎将会话与 cookie 混淆以上是关于保存或不保存会话中的州和县列表的主要内容,如果未能解决你的问题,请参考以下文章