sql-server - SQL Server 优先级排序

标签 sql-server data-structures

我有一个包含任务的表,我想根据任务的优先级对这些任务进行明确的排序。我能想到的唯一方法是通过一个 unique int 列,该列根据优先级对任务所在位置进行索引(即 1 是前 1000 个是低优先级)。

问题是,假设我想更新任务并将其优先级设置为较低的值,我必须更新其当前值和新值之间的所有其他行。

有人可以提出更好的实现方法吗?

最佳答案

使用实数值作为优先级。您始终可以使用类似于 newPri = task1Pri + (task2Pri - task1Pri)/2 的值在两个现有值之间滑动一个值,其中 Task1 具有较低优先级数值(可能是较高优先级)。

Corin 指出,对于插入优先级列表顶部或底部的任务,必须计算最小和最大优先级。

乔尔哈迪提醒我们,重新排序过程是不时清理表格的好主意。

关于sql-server - SQL Server 优先级排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/112551/

相关文章:

c# - 如何将 SQL Server 与 .NET MAUI 连接

haskell - 在无限序列生成期间删除元素

c - 计算后缀表达式时出现不需要的符号结果

c# - 数据结构中的杀毒算法

c# - C# 程序中 SQL Server 的 OleDB 连接字符串

sql-server - 为 SQL Server 使用非交互式服务帐户

c++ - 错误 : pointer to incomplete class type is not allowed

java - 使用嵌套的 HashMap 是一种不好的做法吗?

sql - T-SQL 相当于具有多列的 oracle sql where 子句

sql-server - SqlServer View 总是最新的吗?