数据库表中的智能显示顺序

时间:2013-01-21 23:26:56

标签: database algorithm

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

这种方法有一个限制,当你用完两个相邻记录之间的差距时,你必须开始更新display_order以获得许多记录,以便产生一些差距。

我已经考虑过使用浮点或只是字符串,但不确定这会影响比较性能。

根据您的经验,您如何看待这一点?

干杯, 埃尔顿

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

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