我有一个包含任务的表,我想根据任务的优先级对这些任务进行明确的排序。我能想到的唯一方法是通过一个 unique int 列,该列根据优先级对任务所在位置进行索引(即 1 是前 1000 个是低优先级)。
问题是,假设我想更新任务并将其优先级设置为较低的值,我必须更新其当前值和新值之间的所有其他行。
有人可以提出更好的实现方法吗?
最佳答案
使用实数值作为优先级。您始终可以使用类似于 newPri = task1Pri + (task2Pri - task1Pri)/2
的值在两个现有值之间滑动一个值,其中 Task1 具有较低优先级数值(可能是较高优先级)。
Corin 指出,对于插入优先级列表顶部或底部的任务,必须计算最小和最大优先级。
乔尔哈迪提醒我们,重新排序过程是不时清理表格的好主意。
关于sql-server - SQL Server 优先级排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/112551/