gpt4 book ai didi

mysql - 更新信息时插入新记录?

转载 作者:搜寻专家 更新时间:2023-10-30 22:03:44 25 4
gpt4 key购买 nike

我正在开发在线购物车系统,我有 items 和 item_options 表。

每个项目可以有 1 个或多个选项,见下文。

项目表

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

注意:商品价格在 item_options 表中

item_options 表

  • option_id (PK)
  • item_id (FK)
  • 选项名称
  • option_price

当客户下订单时,数据将被添加到order 和order_items 表中。

订单表

  • orders_id (PK)
  • customer_id (FK)
  • address_address_id (FK)
  • 购买日期
  • 订单状态
  • 订单完成日期

order_items 表

  • orders_items_id (PK)
  • orders_id (FK)
  • item_id (FK)
  • item_option_id (FK)

有一个问题,如果员工更改价格、项目名称或删除项目。客户发票将受到影响,因为来自 order_items 的 FK 将不再存在于项目表中。有什么解决办法?

这个解决方案如何:在 itemsitem_options 表中添加 active 字段。当员工想要更改商品的价格或名称时 - 只需将当前事件记录变为 0 (items.active),然后插入一条包含新信息的新记录,事件变为 1。旧订单仍然指向未激活条目的正确 ID。这种做法好吗?

当新信息被插入到 items 表中时,是否意味着我必须更新/更改 item_id.item_options 表中的新 PK ID?

最佳答案

在这种情况下,我绝对反对使用硬删除。每次更新或删除都应该在 item_options 表中添加一个新行,然后将前一个标记为不活动(这样用户就不可能选择以前的值之一)。

插入的每个新项目都应包含两个步骤:

  1. 将项目添加到项目表
  2. 使用 items 表中的 item_id,将项目添加到 item_options 表中

关于mysql - 更新信息时插入新记录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5770839/

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