2009-11-19 94 views
3

我正在爲我的網站製作購物車。存儲購物車的臨時數據

哪個更好的解決方案,將數據存儲在會話中或將數據存儲在表中?如果我將它存儲在表格中,我將如何以及何時刪除表格中的記錄(即,何時不由用戶購買,但是在表格中)

回答

2

我在我的具體情況下做的是將信息存儲在CartOrder表中。狀態是'正在等待'。當過程完成後,我在訂單表中插入信息,並將CartOrder標記爲完成(或刪除它)。對我來說購物車訂單是購買的意圖,訂單是購買本身。

不要緊,如果你不刪除CartOrder,你可以稍後使用它(看看亞馬遜或其他網站如何保持你的最後一個購物車,即使你沒有完成購買)。這也可以很好地跟蹤有多少用戶進入該網站,環顧四周,啓動購物車,但沒有完成購買。用戶喜歡這一點。

2

優先事項。兩者都是合理的。數據庫使您能夠分析將要購買的產品或者至少在您的客戶感興趣的方面排隊,這些數據通常非常有效,因爲您對產品表現出濃厚的興趣,並且很多時候數據不會被刪除,一個到期日期或至少一個會話ID作爲表中的一個屬性。

根據DB方法,如果您確實想要刪除它,可以輕鬆清除,您可以在cron或其他計劃作業中每日或每週運行以刪除所有已過期的記錄。

+0

謝謝,它非常有用 – sathish 2009-11-19 05:38:19

+0

在mysql中,查詢可能看起來像「DELETE FROM cartdata WHERE created_date <=(CURRENT_TIMESTAMP - INTERVAL 7 DAY)」 – 2009-11-19 06:04:27

2

取決於你想要做什麼。

用戶解決方案使用$_SESSION,該解決方案易於實施,不會影響您網站的性能。

數據庫會話很好,因爲沒有超時涉及,它更可靠。

我會說如果你的價格標籤是昂貴的,那麼最好有一個數據庫會話,因爲用戶通常花費更多的時間來思考當他花費> 10,000美元時。

對於普通產品來說,SESSION解決方案很好。

1

從亞馬遜獲取提示,將數據存儲在數據庫中,並且永不刪除它。

您從購物車中的物品獲得多少價值?存放購物車內容需要多少費用?如果有人放棄購物車,並在一年後返回您的網站,他們可能仍然需要購物車中的物品。