我设计了一个名为 USER_REQUESTS 的表格。它有一个名为 STATUS 的字段,其目的是捕获请求的当前状态。它可以是提交,进行中,完成等等...现在我的问题是,我是否必须创建一个主表来保存可能的请求状态?如果是这样,会有什么好处?
答案 0 :(得分:3)
你没有拥有,但最好这样做 - 这种只包含一组值的表通常被称为查找表。
这样,您可以将 USER_REQUESTS 表中的 STATUS 值限制为仅对应于可能的 STATUS 值。
某些数据库允许您定义以这种方式约束值的ENUM
类型。
答案 1 :(得分:0)
状态是状态对象。
州对象不仅仅是一个名称(“已提交”,“正在进行中”,“已完成”)
大多数情况下,State对象具有一组合法的下一个状态。有些国家(即“已完成”)没有下一个州。
大多数情况下,State对象都有一个进程,可以将事物从一个状态推进到下一个状态。在某些情况下,您实际上可以将该流程命名为State的一部分。
你应该有这样的表。
State Name | Process | Success Next State | Failure Next State
submitted | start "some.sh" | in progress | submitted
in progress| check script | completed | failed
现在,您的应用程序仅为每个“流程”步骤提供实现。整个“工作流程”由您的州表定义。
您可以通过更改状态的定义轻松地重新配置应用程序。
这是好处。