2012-05-19 92 views
0

我正在用php/mysql構建一個非常小的購物車系統。目前,實際的購物車(產品,類別等表格較少)由兩個表格組成。購物車:如何在數據庫中存儲產品數量

一個表命名shoppingCarts其包括下列:

  • ID(PK)
  • 用戶id(FK)
  • dateCreated會

其它表,命名shoppingCartItems,由:

  • productI d(FK)
  • shoppingCartId(FK)
  • dateCreated會

要添加一個產品時,我能想到的兩種可能的情形量:

  1. 添加一個新行添加的每個項目到購物車。
  2. 添加一列'金額'並將金額存儲在那裏。

我想知道哪個選項最好,什麼是起伏? 也許有一個更好的解決方案,我沒有想到?

回答

1

我認爲,正確的解決方案是有一個額外的額度列,因爲沒有優勢,每行只有一行,但更多的冗餘數據。想象一下,如果客戶想要50個物品,那麼最終會得到50個相同的數據行。您必須對行進行計數,或者使用GROUP BY進行選擇或以編程方式進行計數。有了額外的數據列,您可以節省數據,查詢也不那麼複雜。

0

我的建議是沒有使用只有一個數量的列。 因爲我相信你有一個物品表,你有物品ID,細節和價格。 因此流程如下:: 如果客戶登錄,用他的userId在購物車中創建一行,並且每當他將物品添加到他的購物車時,就會爲購物車物品創建一個新行。現在可以找到並顯示所有項目的累計價格(使用總計函數總和),這將解決創建新列「數量」的目的。 如果將折扣優惠券或任何折扣的概念與任何忠實客戶集成在一起,請在您的應用程序中說明,我們的設計將難以整合。所以我建議增加兩列 1)總價 2)優惠價格/金額支付 如有任何疑問,請回復。

相關問題