对不起,如果这个问题太愚蠢或太神经质......但我自己无法弄清楚。所以我想看看其他人是如何处理的。
我的问题是:
我想写一个程序来显示做某事的进度。所以我需要记录它当前处于哪个状态,以便有人可以随时检查它。有两种方法:
使用两个字段来表示进度状态:
step
和is_finished
。仅提交一个:
step
. 例如,如果这件事需要 5 步,则6
意味着完成。(0表示未启动?)
比较以上两种方法。
两个领域:
似乎更清楚了。而最重要的是,从逻辑上讲
step
和finished or not
是两个概念吗?我不确定。如果事情结束了。我们将
is_finished
字段更改为true
(或您喜欢的 1)。但是现在如何处理step
字段?加一个,或者只是因为它现在没有意义而不再碰它?
一个领域:
- 简单,节省空间。但不是很直观。例如,我们不知道
6
仅查看此字段的真正含义,因为它可能代表完成或中间步骤。它需要其他信息total step
来确定。如果总步数发生变化,这个含义可能不是很稳定(is_finished
两场方法中的场不会受此影响)。
那么您将如何处理呢?谢谢!
更新:
我忘记了在上一篇文章中可能有用的一点:
故事是:我们为客户提供基于网络的服务。(此服务有时间限制,例如1年期限) 客户购买后,我们的部署程序准备硬件(虚拟机)并部署一些需要一些时间才能完成的软件。我们想为客户提供进度信息。部署完成后,应通知客户。
数据库设计:
它需要一个
usage state
字段来表示running normal
,running but owe (expired)
,stop
。令我困惑的是它是否应该包含not deployed yet
信息deploying
?进度信息应该包括一些其他信息,例如,
start time
这样我们就可以知道自开始以来经过了多少时间。但是这个信息不需要持久化,因为只要它完成了我们就不会关心这些信息。所以我决定将这些进度信息存储在一个单独的(临时)表中。然后我认为它需要另一个更持久的表中的另一个字段来判断事情是否完成。那么我们可以将它结合到usage state
上面提到的领域吗?