【问题标题】:Cleaning up old shopping carts清理旧购物车
【发布时间】:2014-07-06 07:06:09
【问题描述】:

我目前从事的项目是一个asp.net 2.0 电子商务网站。购物车是基于会话的,因此它会在 30 分钟左右后过期。我已经对其进行了转换,以便将购物车存储在数据库中,但我留下了清理旧购物车的问题。清理数据库中的购物车表的最佳方法是什么?我打算在管理部分创建一个页面,所有者可以单击以清理超过一周的购物车。有没有更好的方法来处理这个问题?

【问题讨论】:

  • 点击支付就清除会话?
  • 当他们点击支付时购物车被清除。问题是人们放弃的手推车。如果他们一周后回来,我希望他们的购物车里还有东西,但可能不会超过这个。
  • 您使用的是 SQL Server 吗?如果您使用的版本不是 express,那么您应该可以选择使用 SQL Server 代理来安排一个存储过程,该过程会删除最后更新日期超过一周的所有行。
  • 我正在使用 sql server,所以我会检查一下。

标签: asp.net webforms e-commerce shopping-cart


【解决方案1】:

我知道,由于资源有限,您不能无限期地存放旧手推车。

因此,这里有两个选项的建议。

1.创建一个存储过程来移除旧购物车 - 让企业主确定旧购物车的使用寿命,否则 1 个月可能是合理的。

2.
选项 a) 每天或每周使用SQL Server Agent 运行上述存储过程:

SQL Server 代理是一个 Microsoft Windows 服务,它执行 计划的管理任务,在 SQL Server 中称为作业。

选项 b) 如果您使用的是 SQL Express,您将没有 SQL Server 代理,因此请创建一个执行上述存储过程的 .sql 文件和一个使用 SqlCmd 运行 SQL 的 batch file

批处理文件包含一系列命令,通常是 编写用于自动执行经常执行的任务。

然后创建一个 Windows Scheduled Task 以每天或每周运行批处理文件。

【讨论】:

    【解决方案2】:

    如果人们放弃购物车,他们就不再感兴趣了。

    对此的简单解决方案是让用户选择“保存购物车”(到 DB)。假设您有一个有效的会员系统并设置了个人资料,他们可以在下次登录时轻松查看他们的购物车。

    正如 Makit 所说,如果您在 Express 之上运行 SQL Server,则可以使用计划存储过程。您还有其他选项可以清除旧条目,例如 Windows 计划任务或从 Global.asax 文件中的启动方法运行存储过程。

    这是我遇到的最好建议:您根本不应该删除这些数据。就像亚马逊一样,一个人可能会在几个月后返回并从购物车中购买东西:

    http://brockallen.com/2012/04/07/think-twice-about-using-session-state/

    结论?让用户选择自己保存购物车内容。更好的商业模式。

    【讨论】:

      猜你喜欢
      • 2011-04-09
      • 1970-01-01
      • 2014-08-02
      • 2019-03-21
      • 1970-01-01
      • 1970-01-01
      • 2018-08-29
      • 1970-01-01
      • 2019-11-02
      相关资源
      最近更新 更多