处理具有有序状态的属性是我多次处理的事情。例如,问题跟踪器中的问题可以具有open
、pending
或closed
状态。为了使排序和查询更容易,很容易将状态存储为整数。然而,这使得添加新的状态变得不那么简单了吗?例如,当状态存储为整数时,介于delayed
和pending
之间的一个新状态closed
将带来问题。
是否有模式或概念可以使用可排序类型(如整数)来存储问题的状态而不影响可扩展性?
脑海中浮现的一种方法是避免后续的价值。与其将0
分配给open
,将1
分配给pending
,不如将10
分配给open
,将20
分配给pending
,以便为可扩展性留出空间。这是一种常见的模式吗?
发布于 2014-02-19 10:48:58
我认为使用具有一定偏移量的整数(比如10,20,.)只是一次黑客攻击,但对你的问题没有一般性的概念性解决方案。
一般的解决方案是使用一个类(如State
),它具有两个正整数值属性(如enumNo
和seqNo
),一个用于为(State
)枚举文本提供标识符,另一个用于定义线性顺序。
发布于 2014-02-18 15:22:13
它在七十年代就已经被BASIC应用了。
发布于 2014-02-19 11:27:53
编辑:排序模式不存在于关系模型中,因为它违反了第一个范式和关系定义。非关系数据库模型使用List或Array数据结构来定义排序。
https://stackoverflow.com/questions/21857226
复制相似问题