0

我们数据库中的许多表都使用字段“display_order”来决定屏幕上记录的顺序。我们在这个字段中使用 int。一开始,当我们插入记录时,我们会在它们之间留下一些间隙,例如,第一条记录我们给 display_order = 0,第二条记录 display_order = 1000。这样我们在第一和第二条记录之间就有了一些间隙。因此,如果我们想在这两者之间插入一条新记录,我们可以给出 display_order = 500。

这种方法有一个限制,即当您用完 2 个相邻记录之间的间隙时,您必须开始更新许多记录的 display_order 以产生一些间隙。

我曾考虑过为此使用浮点数或仅使用字符串,但不确定这会损害比较性能。

根据您的经验,您对此有何看法?

干杯,埃尔顿

4

2 回答 2

1

浮点不应该对性能产生任何影响,它是迄今为止最简单的解决方案:只使用周围值的平均值。在病态的情况下,您可能会用完除法的位数,因此您需要确保平均值与两个周围的值不同,如果结果相同,则需要重新编号。但这不应该经常发生。

于 2013-01-22T02:01:24.100 回答
0

将显示顺序乘以 2 或 3 怎么样?这保留了原始顺序并在项目之间引入了更多空间。将其作为更新查询运行也很容易。

于 2013-01-22T00:56:05.840 回答