gpt4 book ai didi

mysql - 购物车订购表

转载 作者:行者123 更新时间:2023-11-29 00:56:47 24 4
gpt4 key购买 nike

我正在开发在线购物车系统。现在我需要将商品/购物篮添加到订单表中。我想确定我是否走在正确的道路上?

这些是主要的产品表:

项目表

  • item_id (p)
  • 项目名称
  • 项目描述

注意:商品价格在 item_options 表中

item_options 表

  • option_id (p)
  • item_id (f)
  • 选项名称
  • option_price

item_extras 表

  • extras_id (p)
  • option_id (f)
  • 临时 Actor 姓名
  • 额外价格

下面是订单表。正如您所看到的项目名称、选项名称和附加名称,价格被复制到订单表中。如果任何项目名称或价格发生变化 - 它不会影响订单表。例如,发票不会受到影响。

订单表

  • orders_id (p)
  • customer_id (f)
  • address_book_id (f)(送货地址)
  • 购买日期
  • 订单状态
  • 订单完成日期

order_items 表

  • orders_items_id (p)
  • orders_id (f)
  • item_id (f)
  • item_name(从 items 表中复制)
  • item_description(从 items 表中复制)
  • option_id (f)
  • option_name(从 item_options 表中复制)
  • option_price(从 item_options 表中复制)

order_extras 表

  • order_extras_id (p)
  • orders_id (f)
  • orders_items_id (f)
  • extras_id (f)
  • extra_name
  • 额外价格

最佳答案

我想对这个数据库模式提出两个潜在的优化。

首先,是否有任何附加条件适用于两个不同的选项,例如options 和 extras 是多对多的关系?如果是这样,您需要添加具有以下结构的链接表:

 optionExtras
optionId, pk
extraId, pk

然后您可以通过删除 optionId 字段来更改 extras 表。这可以消除潜在的冗余。

其次,与其重复项目名称、选项名称和额外名称,为什么不在每个名为 active 的表中添加一个 bool 值 (0-1) 行,这表示在订购时当前可以选择每个表中的哪些条目.这样可以避免额外的冗余,并且可以恢复产品,而不会对旧发票上的信息产生任何影响。当您想更改产品的价格或名称时,只需关闭当前事件记录,然后插入包含新信息的新记录。旧订单显然仍然指向未激活条目的正确 ID。

您还可以更进一步,使用事件列来表示输入特殊代码的人可以获得的产品,例如将这些产品标记为事件 = 2。

以上就是我的想法,希望对你有帮助!

关于mysql - 购物车订购表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5770015/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com