【问题标题】:Store Session ShoppingCart in db在 db 中存储会话 ShoppingCart
【发布时间】:2017-03-24 23:56:12
【问题描述】:

我目前正在开发一个 laravel 应用程序,并希望在其中实现 Laravel Shopping Cart。但在我这样做之前,我有一个问题:正如我所知道的,所有的购物卡信息都存储在会话中。如果我知道注销/关闭浏览器等,我的会话就消失了,购物车也消失了。

如何在数据库中存储购物车信息并在需要时恢复它?并且:我什么时候将它保存在数据库中?什么时候再拿出来?

【问题讨论】:

  • 范围很广,最好找一个不同的购物车脚本
  • 其他购物车脚本有什么不同? laravel 有 5 个或更多,但是什么让其他人更好?
  • 只有 5 个?好吧,您想要一个使用 db 的数据库,而不是会话,这对您来说会更好。
  • 将它全部放在 db 上并且根本不使用会话是否有意义?
  • 每种方法各有利弊。

标签: php laravel session eloquent shopping-cart


【解决方案1】:

基于文件的会话或基于数据库的会话都将在注销、关闭浏览器等时销毁。

您需要在数据库中创建 2 个表

table_shopping_cart => id、session_id、user_id、created_at、updated_at、invoice_id 等

table_shopping_cart_items => id、cart_id、item_name、item_qty、price 等

您可以使用特定日期/时间运行调度程序或 cron 查询,以从两个表中删除过期条目。

【讨论】:

    【解决方案2】:

    如果不是业务规则,我会说将信息存储为数据库有点矫枉过正。人们经常在网上疯狂购物时保存购物车,此时增加数据层的复杂性听起来有点超出了这个问题的范围。

    如果您要保存它,则需要将购物车与特定登录名关联。如果该基础设施已经存在,那么将他们的信息保存在数据库中会更容易。

    您使用的是什么类型的数据库?

    【讨论】:

    • 我用的是 mysql 数据库,用 eloquent 访问一切
    • 是的,听起来您需要设计一个数据库表,允许您存储与用户关联的产品 ID。
    猜你喜欢
    • 1970-01-01
    • 2017-06-21
    • 2015-03-12
    • 1970-01-01
    • 2012-07-08
    • 1970-01-01
    • 1970-01-01
    • 2019-05-02
    • 2023-03-08
    相关资源
    最近更新 更多