2008-11-18 142 views
7

我知道購物車項目等信息的普遍共識是將它們存儲在會話中。但是屬於用戶的對象可以被其他用戶修改嗎?比如,說一個類似eBay的網站。如果您在會話中存儲了包含當前出價金額的用戶「項目」,而另一用戶進入並對該項目出價,則必須更新數據庫中的項目以及會話中的項目,你不是嗎?在會話中存儲購物車

在這些情況下,只有在會話中存儲和刷新時,只要其他用戶採取的任何操作都會影響人員的會話值或將所有內容存儲在數據庫中,並且每次都檢索它(如果您說每個頁面的側面顯示出價)。

回答

6

我會將它全部存儲在數據庫中,並每次檢索它。取決於數據緩存幾秒鐘的波動性可能是有序的。最大的問題是保持兩者一致。

我認爲它不像每次檢索數據那樣昂貴。數據庫是非常有效的,如果你正在查找基於一個關鍵。我會在簡單性(存儲在數據庫和檢索)方面犯錯,直到性能問題出現在負載下(即在負載測試中)。

如果只有少數幾次,您可以使用應用程序緩存(除非您有多個工作進程/服務器)並確保數據庫和緩存保持同步。

4

我個人將它存儲在數據庫中。首先,因爲您的數據在那裏比較安全,並且在需要Web場的情況下可以更輕鬆地進行共享。另外,您不需要在每個頁面上都有數據。正好當用戶去購物車。將其存儲在數據庫中的另一個好處是,您可以稍後分析人們添加到購物車的內容,但不會實際購買。