【问题标题】:Storing shopping cart in session在会话中存储购物车
【发布时间】:2008-11-18 01:25:08
【问题描述】:

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

在这样的情况下,唯一的选项是存储在会话中并在其他用户执行的任何操作影响一个人的会话值时刷新,或者将所有内容存储在数据库中并每次检索它(例如,如果您有显示在每个页面的侧面板上的出价)。

【问题讨论】:

    标签: asp.net session


    【解决方案1】:

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

    我认为每次都检索数据并不像您想象的那么昂贵。如果您基于键进行查找,则数据库非常有效。我会在简单性方面犯错(存储在数据库中并检索),直到在负载下出现性能问题(即在负载测试中)。

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

    【讨论】:

      【解决方案2】:

      我会亲自将其存储在数据库中。首先,因为您的数据在那里更安全,并且在您需要网络农场的情况下更容易共享。此外,您不需要在每一页上都有数据。就在用户去购物车的时候。将其存储在数据库中的另一个好处是您可以稍后分析人们添加到购物车但实际上并未购买的东西。

      【讨论】:

        猜你喜欢
        • 2012-07-29
        • 1970-01-01
        • 1970-01-01
        • 2013-01-20
        • 2013-02-05
        • 2015-02-04
        • 2015-07-12
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多