gpt4 book ai didi

database - 使用继承来解决设计问题

转载 作者:搜寻专家 更新时间:2023-10-30 20:12:36 24 4
gpt4 key购买 nike

我需要一个表来存储项目并跟踪项目何时...

  1. 排队
  2. 标记为运输
  3. 已发货
  4. 标记为返回
  5. 返回

该表还需要告诉我一个客户有多少商品...

  1. 一个月内收到
  2. 此时在家

我尝试使用继承。我为每个步骤分配了一个 typeId(从 1 到 5,每个 id 代表工作流中的当前步骤)。这种方法并不理想,因为更新工作流程步骤会清除历史记录。

例如,如果某件商品从已发货(typeId 3)变为已返回(typeId 5),我们将失去对已发货商品的准确计数。

我应该如何处理这个问题?此外,我更喜欢将数据保存在一个表中,除非有令人信服的理由不这样做。

更新

元素逐渐邮寄给客户。客户在一个月内可以收到的元素数量是有限制的,并且客户在任何给定时间可以在家里拥有的元素数量也有限制。对于这个例子,我们假设前面的是 4,后面的是 2。客户队列可以有任意数量的项目。为此,需要对队列中的元素进行排序,以便根据客户的喜好发送元素的顺序。

已经发货的商品需要退出排名(商品发送后客户无法再修改排名)。

最佳答案

这里没有继承。时间字段实际上是日期时间。当客户将项目添加到队列时,一行将输入到 Tracking 表中。在操作发生之前,从 TimeMarkedShipTimeReturned 的其他时间列都是 NULLTimeQueued 是主键的一部分,以便允许客户多次租用一个项目(对我来说听起来像视频租借)。

enter image description here

要计算客户在家中拥有的元素,您可以使用类似的东西

select count(1)
from Tracking
where CustomerID = 1755
and TimeShipped is not NULL
and TimeReturned is NULL ;

关于database - 使用继承来解决设计问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5970324/

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