购物车数据库结构

时间:2010-12-30 06:50:44

标签: mysql shopping-cart

我一直在研究购物车的数据库结构,并注意到在存储订单详细信息时,产品信息会重复并再次存储在表格中。我想知道这背后的原因是什么?这是我的意思的一个小例子:

产品表

product_id     name               desc         price
1            product 1    This is product 1    27.00

订单表

order_id   customer id     order_total
1             3               34.99

订单明细表

order_details_id    product_id       product name      price    qty
       1                1              product 1        27.00     1

因此,您可以看到产品名称和价格再次存储在订单明细表中。为什么是这样?我能想到的唯一原因是因为产品细节可能会在下订单后发生变化,这可能会引起混淆。这是对的吗?

由于

3 个答案:

答案 0 :(得分:1)

是的,这是唯一的原因

您的产品价格经常变化

因此您可以再创建一个表并存储产品的详细信息,如下所示

产品更新表

id product_id     name               desc         price
1     1            product 1    This is product 1    27.00

和订单表将是

order_details_id    product_Update_id  qty
       1                1               1

答案 1 :(得分:0)

它可能是出于性能原因,而不是必须进行JOIN,只需要一个直接的SELECT来获取订单细节。

答案 2 :(得分:0)

您可以根据

修改结构
product_id     name               desc                 price
1              product 1          This is product 1    27.00

order_id  product_id  customer id   order_total
1         1           3             34.99

order_details_id   order_id  qty
1                  1         1

没有必要采取productname及其价格在orderdetail只需要订单ID 并在订单表中添加一个字段product_id