购物车:如何在数据库中存储产品数量

时间:2012-05-19 17:14:12

标签: mysql shopping-cart

我正在使用php / mysql构建一个非常小的购物车系统。目前,实际购物车(产品,类别等表格较少)由两个表格组成。

一个名为shoppingCarts的表,其中包含以下列:

  • id(PK)
  • 用户id(FK)
  • dateCreated会

另一个名为shoppingCartItems的表包含:

  • productId(FK)
  • shoppingCartId(FK)
  • dateCreated会

要添加一种产品的数量,我可以考虑两种可能的情况:

  1. 为添加到购物车的每件商品添加新行。
  2. 添加列'金额'并将金额存储在那里。
  3. 我想知道哪个选项最好,有什么起伏? 也许有一个更好的解决方案我没想到?

2 个答案:

答案 0 :(得分:1)

我认为,正确的解决方案是为数量添加一个额外的列,因为没有优势每个项目有一行但更多的冗余数据。想象一下,如果客户想要50个项目,那么最终会得到50个相同的数据行。您必须使用GROUP BY选择或以编程方式计算行数。使用额外金额列,您可以保存数据,而查询则不那么复杂。

答案 1 :(得分:0)

我建议不要只使用金额列。 因为我相信你有一个项目表,你有项目ID,细节和价格。 所以流程就像:: 如果客户登录使用userId在购物车中创建一行,并且每当他将一个项目添加到他的购物车时,就会为购物车项目创建一个新行。现在可以找到并显示所有项目的累计价格(使用聚合函数总和),这将解决创建新列“金额”的目的。 展望未来,如果您将折扣优惠券的概念或任何折扣整合到任何忠诚的客户,请在您的申请中说明,我们的设计将难以整合。所以我建议添加两列 1)总价 2)折扣价格/金额支付 如有任何疑问,请回复。