存储排序顺序/优先级的最佳方法?

我正在使用MySQL。 我有一张表,我需要能够手动设置排序的优先级/顺序。 我原本以为给每行分配一个任意的顺序(1,2,3等),然后只是将该顺序与被移动的行进行“交换”,但我认为这不是最好的方式。

在对这里的相关问题进行一些阅读之后(比如本文),很多人都说过根据id列(id * 1000)为优先级列赋值。 要重新排列行,您可以划分/减去列之间的差异。 我不太明白这是如何工作的。

这是我需要排序的表格的布局。

CREATE TABLE liability_detail (
   id int NOT NULL AUTO_INCREMENT,
   analysis_id int NOT NULL, //(many-to-one relationship with analysis table)
   other_columns various datatypes
   sequence int DEFAULT 0
)

我想设置一个简单的方法来管理行的优先级,这样我就可以轻松地对它们进行排序,而无需编写大量代码来管理所有内容。


我结束了以下问题的建议:https://stackoverflow.com/a/6804302/731052

我设置了排序顺序列= id * 1000,以便我可以获得唯一的订单。 到目前为止,这工作得很好,并没有任何问题。

链接地址: http://www.djcxy.com/p/10981.html

上一篇: Best way to store sort order/priority?

下一篇: Create QTransform given 4 points defining the transformed unit square