在会话中存储购物车

问题描述:

我知道购物车项目等信息的普遍共识是将它们存储在会话中。但是属于用户的对象可以被其他用户修改吗?比如,说一个类似eBay的网站。如果您在会话中存储了包含当前出价金额的用户“项目”,而另一用户进入并对该项目出价,则必须更新数据库中的项目以及会话中的项目,你不是吗?在会话中存储购物车

在这些情况下,只有在会话中存储和刷新时,只要其他用户采取的任何操作都会影响人员的会话值或将所有内容存储在数据库中,并且每次都检索它(如果您说每个页面的侧面显示出价)。

我会将它全部存储在数据库中,并每次检索它。取决于数据缓存几秒钟的波动性可能是有序的。最大的问题是保持两者一致。

我认为它不像每次检索数据那样昂贵。数据库是非常有效的,如果你正在查找基于一个关键。我会在简单性(存储在数据库和检索)方面犯错,直到性能问题出现在负载下(即在负载测试中)。

如果只有少数几次,您可以使用应用程序缓存(除非您有多个工作进程/服务器)并确保数据库和缓存保持同步。

我个人将它存储在数据库中。首先,因为您的数据在那里比较安全,并且在需要Web场的情况下可以更轻松地进行共享。另外,您不需要在每个页面上都有数据。正好当用户去购物车。将其存储在数据库中的另一个好处是,您可以稍后分析人们添加到购物车的内容,但不会实际购买。