快精灵印艺坊 您身边的文印专家
广州名片 深圳名片 会员卡 贵宾卡 印刷 设计教程
产品展示 在线订购 会员中心 产品模板 设计指南 在线编辑
 首页 名片设计   CorelDRAW   Illustrator   AuotoCAD   Painter   其他软件   Photoshop   Fireworks   Flash  

 » 彩色名片
 » PVC卡
 » 彩色磁性卡
 » 彩页/画册
 » 个性印务
 » 彩色不干胶
 » 明信片
   » 明信片
   » 彩色书签
   » 门挂
 » 其他产品与服务
   » 创业锦囊
   » 办公用品
     » 信封、信纸
     » 便签纸、斜面纸砖
     » 无碳复印纸
   » 海报
   » 大篇幅印刷
     » KT板
     » 海报
     » 横幅

购物车中数据的存放方法

aierong [原作]

第一次做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

此方式有也有一些缺陷,一是它会造成大量无效数据,大家都知道,使用购物车的人,不一定会最终结帐购买商品。但是使用购物车就得

往表(ShopingCart)里面插入相关数据,未登陆用户一离开站点,他在表中的数据就成了一堆废数据,因为他在下次登陆时,我们分配给他的

是一个新的CartId购物车ID.有废数据我们就得时常来维护此表,我们可以写一个清除废数据的过程(利用字段CreateDate和CartId可以判定无效数据),人工调用运行也可以,要是想由MS SQL代我们来运行,就可以设置一个JOB,由JOB自动调用过程清晰废数据

 

说拉缺陷,我们该说说此方法的长处拉
1。占用系统资源少,我们可以把数据库安顿在一台电脑中,WEB服务器安顿在另一电脑中,系统资源充分发挥
2。购物车中数据可以得到有效保留,我们可以试想一客户在购物时,忽然某其他原因(死机等原因)离开了购物站,他在购物车中数据有效保

留下来,他下次登陆时购物车中还有上次保留的数据,避免用户再次选购商品的操作(此功能只对登陆用户的购物车有效) ,要是用会话实现

购物车,所有用户一旦离开站点,他的购物车中数据全部失效

好拉,我就总结了这些,由于刚刚接触ASP。NET,对许多方面还熟悉不多,可能还有其他一些方式实现购物车,希望大家能够给与指点,谢谢大家

 


返回类别: 教程
上一教程: ASP系列讲座(二十)维护 ASP 应用程序的安全
下一教程: 两级联动的select XML版

您可以阅读与"购物车中数据的存放方法"相关的教程:
· 不刷新页面查询数据库中数据的方式-XML方式
· 利用ASP发送和接收XML数据的处理方式
· ASP导出EXCEL数据的四种方式
· 图片数据的存和取示例
· 在电子商务中实现购物车的方式
    微笑服务 优质保证 索取样品