2013-03-11 77 views
0

我目前正在編程我的網上商店的購物車,我想知道最好的解決方案是做什麼。什麼是我的購物車更好的解決方案?

我目前有5個會話,其中包含用戶爲了節省sql壓力而添加的項目的數據。但我剛剛讀到,使用會話對性能並不好,當服務器達到最大值時服務器會破壞會話(我不知道最大值是多少,我不指望數百個用戶在同一個位置購買項目時間,只有少數)。

總結,使用5次會話保存產品數據或使用查詢獲取產品的所有信息時,每次用戶訪問購物車時最好?

任何其他建議也歡迎!

+1

_「剛纔讀到使用會話不利於性能,並且服務器在達到最大值時會破壞會話」_ - 請爲此提供源代碼。無論如何,這個問題不能合理地回答,除非你要找的答案是「這取決於」。 – CodeCaster 2013-03-11 10:46:30

+0

很遺憾,我找不到有關會話性能的文章。我的實習學院告訴我關於會議破壞。 – Jamie 2013-03-11 11:02:05

回答

0

我認爲最好的辦法就是節約推車DB

因此,用戶將有一個永久的圖表上亞馬遜。

而且您可以在每個購物車上進行數據挖掘。

如果用戶登錄可以保存與用戶ID車/鍵

如果用戶anonimous你可以使用一個Cookie來標識匿名用戶

如果你不喜歡永恆您可以在已保存的購物車上放置時間戳

會話在配置的超時後或用戶關閉其瀏覽器或應用程序池回收時結束。

我將使用DB查詢緩存來保存產品信息,而不是會議

反正會話或高速緩存「壓力」服務器內存,數據庫的查詢壓力SQL

有人無論如何都會被強調。 恕我直言,最好的辦法是緩存sql響應,這樣你就可以平衡內存和查詢之間的壓力

+0

謝謝您的回答,我決定將購物車存儲到數據庫中,並在幾天後將其刪除。因此會議超時將被避免。我沒有拿出cookie部分,謝謝你。將它用於匿名用戶。不幸的是我不能投票,對不起。 – Jamie 2013-03-11 11:06:53

+0

@Jamie你不需要刪除購物車。他們包含有用的信息。查詢數據庫時只需放棄它們。 upvote沒問題。如果你認爲我回答了你的問號,那麼它就是解決方案 – giammin 2013-03-11 11:39:49

0

如果你只希望有幾個用戶在你的網上商店任何時候購買,那麼保存到數據庫應該沒問題。

如果您擔心數據庫壓力過大,可以將用戶的臨時購物車保存爲cookie。這樣可以節省服務器不必擔心會話的問題 - 如果您需要這些會話,可以使用Webfarms,並允許您利用客戶機器通過JavaScript處理基本事項。

+0

我也考慮過這個問題,但另一方面,如果它的細節沒有被修改,你將不得不檢查cookie。儘管如此,這仍然是一個更好的解決方案。感謝您的回覆! – Jamie 2013-03-11 11:09:47

相關問題