購物車中資料的存放方式

2021-09-05 13:17:56 字數 1431 閱讀 2976

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

我的email:    [email protected]

購物車中資料的存放方式

第一次做btoc站點的購物車,總結了一下購物車中資料的存放方式 方式1 用會話 會話中可以存放任何型別資料,每個使用者有乙個唯一的會話id,用此id區分不同使用者的購物車 會話資料是存放在web伺服器的記憶體中的,如果使用購物車的使用者比較多的話,這樣一來將占用大量伺服器資源 會話有一小缺陷,它是依...

購物車中資料的存放方式

第一次做btoc站點的購物車,總結了一下購物車中資料的存放方式 方式1 用會話 會話中可以存放任何型別資料,每個使用者有乙個唯一的會話id,用此id區分不同使用者的購物車 會話資料是存放在web伺服器的記憶體中的,如果使用購物車的使用者比較多的話,這樣一來將占用大量伺服器資源 會話有一小缺陷,它是依...

購物車往mysql裡面傳值 購物車中資料的存放方式

第一次做btoc站點的購物車,總結了一下購物車中資料的存放方式 方式1 用會話 會話中可以存放任何型別資料,每個使用者有乙個唯一的會話id,用此id區分不同使用者的購物車 會話資料是存放在web伺服器的記憶體中的,如果使用購物車的使用者比較多的話,這樣一來將占用大量伺服器資源 會話有一小缺陷,它是依...