我目前正在开展的项目是asp.net 2.0电子商务网站。购物车是基于会话的,所以它在30分钟左右后到期。我已经对它进行了转换,以便将购物车存储在数据库中,但我留下了清理旧购物车的问题。清理数据库中购物车表的最佳方法是什么?我打算在管理部分创建一个页面,所有者可以单击该页面以清理超过一周的购物车。有没有更好的方法来解决这个问题?
答案 0 :(得分:1)
如果人们放弃购物车,他们就不再感兴趣了。
对此的简单解决方案是为用户提供选项" Save Cart" (对DB)。假设您有一个工作会员系统,其中设置了个人资料,他们可以在下次登录时轻松查看他们的购物车。
正如Makit所说,如果你在Express之上运行SQL Server,你可以使用预定的存储过程。您还可以使用其他选项来清除旧计划,例如Windows计划任务,或者从Global.asax文件中的start方法运行存储过程。
这是我遇到的最佳建议:您根本不应删除此数据。像亚马逊一样,一个人可能会在几个月后返回并从购物车中购买东西:
http://brockallen.com/2012/04/07/think-twice-about-using-session-state/
结论?让用户选择自己保存购物车内容。更好的商业模式。
答案 1 :(得分:1)
我知道,由于资源有限,您无法无限期地存放旧车。
因此,这是一个有两个选项的建议。
1。创建一个存储过程以删除旧购物车 - 让业主确定旧购物车的使用期限,否则1个月可能是合理的。
2。
选项a)
使用SQL Server Agent在每天或每周运行存储过程:
SQL Server代理是执行的Microsoft Windows服务 计划的管理任务,在SQL Server中称为作业。
选项b) 如果您使用的是SQL Express,那么您将无法拥有SQL Server代理,因此请创建一个执行上述存储过程的.sql文件和一个使用batch file来运行SQL的SqlCmd。
批处理文件包含一系列命令,通常是 用于自动执行频繁执行的任务。
然后创建一个Windows Scheduled Task以每天或每周运行批处理文件。