2012-05-19 84 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)优惠价格/金额支付 如有任何疑问,请回复。

相关问题