購物車中數(shù)據(jù)的存放方式
發(fā)表時(shí)間:2024-05-25 來源:明輝站整理相關(guān)軟件相關(guān)文章人氣:
[摘要]aierong [原作] 第一次做BToC站點(diǎn)的購物車,總結(jié)了一下購物車中數(shù)據(jù)的存放方式方式1:用會(huì)話會(huì)話中可以存放任何類型數(shù)據(jù),每個(gè)用戶有一個(gè)唯一的會(huì)話ID,用此ID區(qū)分不同用戶的購物車會(huì)話數(shù)據(jù)是存放在WEB服務(wù)器的內(nèi)存中的,如果使用購物車的用戶比較多的話,這樣一來將占用大量服務(wù)器資源會(huì)話有一小...
aierong [原作]
第一次做BToC站點(diǎn)的購物車,總結(jié)了一下購物車中數(shù)據(jù)的存放方式
方式1:用會(huì)話
會(huì)話中可以存放任何類型數(shù)據(jù),每個(gè)用戶有一個(gè)唯一的會(huì)話ID,用此ID區(qū)分不同用戶的購物車
會(huì)話數(shù)據(jù)是存放在WEB服務(wù)器的內(nèi)存中的,如果使用購物車的用戶比較多的話,這樣一來將占用大量服務(wù)器資源
會(huì)話有一小缺陷,它是依靠COOKIE來與用戶通訊的,一旦用戶關(guān)閉COOKIE,使用會(huì)話將比較麻煩
當(dāng)然在ASP。NET中還有另2種方式保存會(huì)話數(shù)據(jù)
一種是指定另一臺(tái)服務(wù)器來存放會(huì)話數(shù)據(jù),這樣一來可以有效分擔(dān)WEB服務(wù)器的運(yùn)行開銷。
另一種是把會(huì)話數(shù)據(jù)存放在MS SQL中,MS SQL是利用局部臨時(shí)表實(shí)現(xiàn)的,會(huì)話數(shù)據(jù)放在局部臨時(shí)表中,MS SQL為每一個(gè)局部臨時(shí)表也分配一個(gè)唯一的ID
,我想是用此ID區(qū)分不同用戶的不同會(huì)話數(shù)據(jù)的。但是我不推薦使用此方法,頻繁在數(shù)據(jù)庫里面建立和刪除臨時(shí)表對(duì)數(shù)據(jù)庫的開銷太大
方式2:在數(shù)據(jù)庫里面用表(ShopingCart)
我喜歡的實(shí)現(xiàn)方式
表有幾個(gè)基本字段
CartId 購物車ID(唯一)
Id 商品的ID(唯一)
Qty 用戶購買商品的數(shù)量
CreateDate 購物車創(chuàng)建時(shí)間
此表的字段CartId是區(qū)分不同用戶的購物車的ID,要是登陸用戶,你可以在表中存放此登陸用戶的登陸名的ID,要是未登陸用戶使用購物車,
你可以給他分配一個(gè)GUID(全球唯一標(biāo)志)做購物車ID
此方法有也有一些缺陷,一是它會(huì)造成大量無效數(shù)據(jù),大家都知道,使用購物車的人,不一定會(huì)最終結(jié)帳購買商品。但是使用購物車就得
往表(ShopingCart)里面插入相關(guān)數(shù)據(jù),未登陸用戶一離開站點(diǎn),他在表中的數(shù)據(jù)就成了一堆廢數(shù)據(jù),因?yàn)樗谙麓蔚顷憰r(shí),我們分配給他的
是一個(gè)新的CartId購物車ID.有廢數(shù)據(jù)我們就得時(shí)常來維護(hù)此表,我們可以寫一個(gè)清除廢數(shù)據(jù)的過程(利用字段CreateDate和CartId可以判斷無效數(shù)據(jù)),人工調(diào)用運(yùn)行也可以,要是想由MS SQL代我們來運(yùn)行,就可以設(shè)置一個(gè)JOB,由JOB自動(dòng)調(diào)用過程清楚廢數(shù)據(jù)
說拉缺陷,我們?cè)撜f說此方式的優(yōu)點(diǎn)拉
1。占用系統(tǒng)資源少,我們可以把數(shù)據(jù)庫安置在一臺(tái)電腦中,WEB服務(wù)器安置在另一電腦中,系統(tǒng)資源充分發(fā)揮
2。購物車中數(shù)據(jù)可以得到有效保留,我們可以試想一客戶在購物時(shí),突然某其他原因(死機(jī)等原因)離開了購物站,他在購物車中數(shù)據(jù)有效保
留下來,他下次登陸時(shí)購物車中還有上次保留的數(shù)據(jù),避免用戶再次選購商品的操作(此功能只對(duì)登陸用戶的購物車有效) ,要是用會(huì)話實(shí)現(xiàn)
購物車,所有用戶一旦離開站點(diǎn),他的購物車中數(shù)據(jù)全部失效
好拉,我就總結(jié)了這些,由于剛剛接觸ASP。NET,對(duì)許多方面還認(rèn)識(shí)不多,可能還有其他一些方法實(shí)現(xiàn)購物車,希望大家能夠給與指點(diǎn),謝謝大家