程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> ASP編程 >> ASP技巧 >> 購物車中數據的存放方式

購物車中數據的存放方式

編輯:ASP技巧

第一次做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,對許多方面還認識不多,可能還有其他一些方法實現購物車,希望大家能夠給與指點,謝謝大家

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved