第一次做BToC站点的购物车,总结了一下购物车中数据的存放方式
方式1:用会话
会话中可以存放任何类型数据,每个用户有一个唯一的会话ID,用此ID区分不同用户的购物车
会话数据是存放在WEB服务器的内存中的,如果使用购物车的用户比较多的话,这样一来将占用大量服务器资源
会话有一小缺陷,它是依靠COOKIE来与用户通讯的,一旦用户关闭COOKIE,使用会话将比较麻烦
当然在ASP。NET中还有另2种方式保存会话数据
一种是指定另一台服务器来存放会话数据,这样一来可以有效分担WEB服务器的运行开销。
另一种是把会话数据存放在MS SQL中,MS SQL是利用局部临时表实现的,会话数据放在局部临时表中,MS SQL为每一个局部临时表也分配一个唯一的ID
,我想是用此ID区分不同用户的不同会话数据的。但是我不推荐使用此方法,频繁在数据库里面建立和删除临时表对数据库的开销太大
方式2:在数据库里面用表(ShopingCart)
我喜欢的实现方式
表有几个基本字段
CartId 购物车ID(唯一)
Id 商品的ID(唯一)
Qty 用户购买商品的数量
CreateDate 购物车创建时间
此表的字段CartId是区分不同用户的购物车的ID,要是登陆用户,你可以在表中存放此登陆用户的登陆名的ID,要是未登陆用户使用购物车,
你可以给他分配一个GUID(全球唯一标志)做购物车ID
此方法有也有一些缺陷,一是它会造成大量无效数据&#x