2015-11-03 65 views
0

我要存儲用戶的購物車 所以每當用戶在購物車中添加一些產品,然後從網站註銷後再當時在網站上登錄,從而使他應該能夠訪問他的購物車在哪裏存儲用戶的購物車,我應該存儲在會話或DB

一種方式是通過會議,但與車的問題會得到空當用戶註銷

我想在數據庫中存儲,以便創建2個表

第一張表是UserTable有3個colu MNS(用戶ID,產品編號,產品數量) 和第二表的productTable有3列(產品編號,產品名稱,價格)

但這種方式對於每一個條目都會有一個新的行中第一個表,並檢索特定用戶的購物車中的所有條目需要檢查那麼這將使得過程緩慢

+0

數據庫設計做你描述_incredibly_快速什麼。此外,你應該澄清:你的問題是什麼? –

+0

如果有5萬用戶,並且每個用戶在購物車中有5-6個物品,那麼它將在表格中生成250K行,然後我必須根據用戶ID從該表中搜索。所以我應該以這種方式實施嗎? –

+0

'從CartTable中選擇ProductId,ProductQuantity,其中UserId =「143」;'是。確保該表在UserId上編有索引 –

回答

1

使用數據庫的優先停留方法來處理這種類型的信息。如果您使用會話,那麼您應該在用戶註銷時清除會話,以便在重新登錄時數據爲空。

理論上,您可以在用戶登錄到使數據檢索更快,然後在註銷時提取會話信息。但是,這種方法的缺點是,如果您有2個用戶和1個可用的用戶1添加到他們的購物車的項目? User2不知道User1的會話,並且該項目應該對User2不可用,因爲它位於其購物車中。

你必須考慮邊緣情況下,在您形成任何方案。

至於數據庫模式,我建議有3個表。

  • 用戶(USER_ID,名)
  • 產品(產品,價格,可用的)
  • 車(USER_ID,PRODUCT_ID,數量)