用于跨页面保留数据的会话或缓存?

时间:2014-08-17 22:55:57

标签: php session caching phalcon

我正在用Phalcon重新编写一个小应用程序,我在其中收集有关用户的信息。从本质上讲,我会在多个页面上获取名字,姓氏,电子邮件,该人是否已婚,某些与该人有关的数字等。当用户“最终”提交他们的信息时(在被要求查看之后),我会向数据库写一些信息并执行一些计算以生成报告,然后通过电子邮件发送出来。

在重写之前,信息直接存储在会话中,即

 "$firstname = $this->session.get('firstname', '');". 

我对这种方法感到不舒服,因为会话主要用作用户对象。我想要做的是生成会话ID,并每次将该信息写入数据库,然后相应地检索它。但是,我们没有从用户那里获得那么多信息,我们注意到人们倾向于启动报告流程然后拯救或去其他地方。在这种情况下,我不知道每次写入数据库是否有意义,以便收集信息并在最后将其刷新。

我想我的问题归结为什么是理想的方法,因为我认为我不需要那么多地打击数据库。在会话中存储用户信息的做法可以继续,或者我可以生成用户对象并将它们分别存储在会话或缓存中。对此的任何想法都将非常感激。

1 个答案:

答案 0 :(得分:0)

如果您指的是MySQL,那么如果您使用内存表,我只会写入数据库。

但是,如果您想要更改它,并且您最终必须决定什么是最适合您的,我建议您转到NoSQL或缓存解决方案。缓存的唯一问题是,如果您的服务器重新启动,那么您的会话将被销毁。