我们数据库中的许多表使用字段“display_order”来决定屏幕上记录的顺序。我们在这个领域使用int。在开始时,当我们插入记录时,我们将在它们之间留下一些空隙,例如,我们给出display_order = 0的第一个记录,第二个记录display_order = 1000.这样我们在第一个和第二个记录之间有一些差距。因此,如果我们想在这两者之间插入新记录,我们可以给出display_order = 500.
这种方法有一个限制,当你用完两个相邻记录之间的差距时,你必须开始更新display_order以获得许多记录,以便产生一些差距。
我已经考虑过使用浮点或只是字符串,但不确定这会影响比较性能。
根据您的经验,您如何看待这一点?
干杯, 埃尔顿
答案 0 :(得分:1)
浮点不应该有任何性能影响,它是迄今为止最简单的解决方案:只使用周围值的平均值。在病态情况下,你可以用尽除法的位数,所以你需要确保平均值与周围的值不同,如果结果是相同的,你需要重新编号。但这不应该经常发生。
答案 1 :(得分:0)
将显示顺序乘以2或3怎么样?这样可以保留原始顺序,并在项目之间引入更多空间。它也很容易作为更新查询运行。