我有一个(Postgres)数据库表,我想添加一个手动“排序”字段。在应用程序的前端,我将有一个拖放字段,以便用户可以手动重新排序条目,然后发布一个AJAX请求,重新排序数据库中的条目,我只是想知道如何在数据库中进行编排。数据库模式:手动排序表的标准方式是什么?
例如,我能想到的最明显的选择是增加每个条目的'sort'整数,排序值> =新排序的选项,但这会过度(并且我认为,不必要地)如果这些列表超出了少数几个项目,那么数据库就会很重。
另一种选择是让“排序”列一个BigDecimal,并使其价值
SortValue[A] = SortValue[B] + (SortValue[C] - SortValue[B])/2
其中A是我重新排序场,B是场直接在上面它和C是它下面的字段,但这似乎是一个非常混乱的解决方案,更不用说可能受小数点限制。
我确定这是一个非常普遍的问题。有效地允许手动排序数据库表的标准方法是什么?
干杯......
我猜你希望用户能够手动排序;例如,将歌曲拖放到有序播放列表中。之后,您希望能够以用户选择的顺序访问或显示它们。对? – 2011-12-24 08:09:56
是的,这是正确的 – PlankTon 2011-12-24 08:39:48