gpt4 book ai didi

mysql - 处理已删除表行的最佳实践?

转载 作者:行者123 更新时间:2023-12-01 00:34:06 25 4
gpt4 key购买 nike

这是我的情况。我有以下表格:

  • 产品,
  • 产品属性,
  • Order Product(引用 product_id 和 order_id),
  • Order Product Attribute(引用 order_product 和 product_attribute)。

当管理员进入编辑产品属性(例如“颜色”)时,他可能会错误地删除该属性,然后再将其添加回来。如果已经为该产品下了订单,当他删除并重新添加属性时,它在产品属性表中的 ID 会发生变化。这使得订单产品属性引用了一个不存在的属性 ID(尽管该属性仍然存在)。

解决这个问题的最佳方法是什么?也许我只是需要对这个问题有不同的看法。

注意:如果在编辑产品时刷新所有属性并重新添加当前选择的可能相同的属性,也可能会出现此问题(同样重要)。

最佳答案

不允许“误删除”...只需将“事件”或“非事件”标志作为产品属性表中的一列即可。

您始终可以使用顺序而不是属性 ID 来保存属性。如果您的设计使得属性 id 不断变化,那么您的订单就没有历史有效性。创建产品的新“版本”并在进行更改时将旧版本设置为不活动,或者保存订单中的产品状态,以便您有一些历史记录。

关于mysql - 处理已删除表行的最佳实践?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1010465/

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