我们数据库中的许多表都使用字段“display_order”来决定屏幕上记录的顺序。我们正在为这个字段使用 int。一开始,当我们插入记录时,我们会在它们之间留下一些间隙,例如,我们给第一条记录 display_order = 0,第二条记录 display_order = 1000。这样我们在第一条和第二条记录之间就有了一些间隙。所以如果我们想在这两者之间插入一条新记录,我们可以给一个display_order = 500。
这种方法有一个限制,当你用完 2 个相邻记录之间的间隙时,你必须开始更新许多记录的 display_order 以制造一些间隙。
我考虑过为此使用 float 或仅使用字符串,但不确定这是否会影响比较性能。
根据您的经验,您对此有何看法?
干杯, 埃尔顿
最佳答案
float 应该不会对性能产生任何影响,这是迄今为止最简单的解决方案:只需使用周围值的平均值。在病态的情况下,您可能会用完除法位,因此您需要确保平均值与周围的两个值不同,如果结果相同,则需要重新编号。但这不应该经常发生。
关于database - 数据库表智能显示顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14449052/