如何在mysql中管理网上购物中心的退款db表?
我目前正在为我的网上购物中心设计一个数据库表。要指定问题,我目前有:如何在mysql中管理网上购物中心的退款db表?,mysql,shopping-cart,Mysql,Shopping Cart,我目前正在为我的网上购物中心设计一个数据库表。要指定问题,我目前有: 订单表:包含 订单号 订单总价 订单状态(例如已发货、已交付、已退款) 订购方信息,如地址、zipcode和电话号码 产品表:包含 产品标识 价格 库存数量等 由于一个订单可以包含多个产品,并且一个产品可以包含在不同的订单中,因此中间订单_详细信息表可以构造多对多关系。因此, 订单详情: 订单号 产品标识 数量 其中order_id和product_id是外键,并分组为order_details表的主键 现在,我正
- 订单号
- 订单总价
- 订单状态(例如已发货、已交付、已退款)
- 订购方信息,如地址、zipcode和电话号码
- 产品标识
- 价格
- 库存数量等
- 订单号
- 产品标识
- 数量 其中order_id和product_id是外键,并分组为order_details表的主键
问题是,我应该如何构造退款表以满足上述规范?在上面的示例中,当X想要查看其订单状态时,我应该如何在退款表中存储信息,以便X可以看到只有2项产品A已退款,其他产品已正确订购?您可以创建一个退款表,并在其中放入以下内容:
- 退款单
- 订单\u详细信息\u id
- 数量
SELECT (order_details.quantity - IFNULL(refunds.quantity, 0)) AS ordered_quantity
FROM order_details
LEFT JOIN refunds ON order_details.id = refunds.order_detail_id
这将始终为您提供每个订单的详细信息,以及正确订购的内容。然后,您可以将这些订单详细信息值相加,以获得整个订单的正确订购量,也许退款表中应该有退款,然后存储订单id和产品id,以及退款中退款的(该产品的)项目数量。(当然,在不同的日期,每个订单甚至可以申请多个退款,因此不要将订单id和产品id组合作为此表上的主键)。然后,如果您想知道某一特定产品在任何给定订单中有多少项已售出且未退款,您可以获取原始订购数量,并减去任何相关退款记录中的数量。您不一定需要单独的退款表。你可以考虑退款为负数和数量的订单。您所需要的只是订单表中的一个引用字段,以便能够通过任何修改连接标准订单。