什么是在SQL中存储记录顺序的最佳方法

use*_*348 9 sql

我有一个用户配置文件表.每个用户都可以拥有许多配置文件,并且用户可以排列它们在网格中的显示顺序.

共有2个表用户和个人资料(1:M)

orderby在Users表中添加了一个列,其中的值为1,2,3 ..

到目前为止似乎还可以.但是当用户将最后一条记录的顺序更改为第一条记录时,我必须完成所有记录并将其值增加+1.这在我看来非常难看.

对于这种情况,有没有更方便的解决方案?

Mar*_*ith 9

在序列中留下间隙或使用小数而不是整数数据类型.

  • 优选地,第二个. (2认同)
  • 使用字符串(varchar、text)。字符串隐含地具有不确定的“任意精度”。/sf/answers/3496927941/ (2认同)

egr*_*nin 7

最好的解决方案是反映功能的解决方案,即一个简单的整数列表。保持列表有序只需几个 SQL 语句,并且比建议的其他解决方案(浮点数、间隙整数)更容易理解。

如果您的列表非常大(数以万计),那么性能考虑因素可能会发挥作用,但我认为这些列表不会那么长。