【发布时间】:2014-03-18 09:51:00
【问题描述】:
处理具有有序状态的属性是我处理过很多次的事情。例如,问题跟踪器中的问题可以具有open、pending 或closed 状态。为了使排序和查询更容易,将状态存储为整数是很诱人的。但是,这使得添加新状态变得不那么简单了吗?例如,新状态 delayed 介于 pending 和 closed 之间,当状态存储为整数时会出现问题。
是否存在使用可排序类型(例如整数)在不影响可扩展性的情况下存储问题状态的模式或概念?
想到的一种方法是避免使用后续值。与其将0 分配给open 和将1 分配给pending,不如将10 分配给open 和20 分配给pending 可能会更好,以便为可扩展性留出空间。这是一种常见的模式吗?
【问题讨论】:
-
不要使用单个整数来表示状态和顺序。
-
迈克,他显然指的是某些工作流/过程(/ petri 网?)中的状态排序。您如何使用任何无序类型来表示此排序?您是否建议在其他地方明确建模可能状态的可能顺序(二元关系“状态 X 先于状态 Y”)?即明确地将类型的相关排序运算符定义为数据库中的表?
-
@ErwinSmout:我只是建议排序顺序有自己的列。
标签: database-design data-modeling