0

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

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

  • 身份证(PK)
  • 用户 ID(FK)
  • 创建日期

另一个名为 shoppingCartItems 的表包括:

  • 产品 ID (FK)
  • shoppingCartId (FK)
  • 创建日期

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

  1. 为添加到购物车的每个项目添加一个新行。
  2. 添加一列“金额”并将金额存储在其中。

我想知道哪个选项最好,有什么起伏?也许有一个我没有想到的更好的解决方案?

4

2 回答 2

1

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

于 2012-05-19T17:33:26.837 回答
0

我的建议是仅使用金额列是没有用的。我相信你有一个项目表,其中有项目 ID、详细信息和价格。所以流程是这样的:如果客户登录时使用他的 userId 在购物车中创建一行,并且每当他将商品添加到购物车中时,都会为购物车商品创建新行。现在可以找到并显示所有项目的累积价格(使用聚合函数sum),这将解决创建新列“金额”的目的。展望未来,假设在您的应用程序中,如果您将折扣券或任何折扣的概念集成到任何忠实客户,我们的设计将很难集成。所以我建议添加两列 1)总价 2)折扣价/支付金额 如有任何疑问,请回复。

于 2012-05-19T17:59:47.287 回答