在一个特定的表中,我有一个SortOrder整数字段,告诉我的页面显示数据的顺序。该字段中有一组数据(基于CategoryID字段),每个集合都有自己的排序。用户可以在此表中添加/删除/更新记录。
我的问题是管理此SortOrder字段的最佳方法是什么?每次删除或更新记录时,我都想“重新设置”它。这是我应该使用触发器的东西吗?或者我的代码应该处理它并管理重新种植吗?
答案 0 :(得分:2)
我以前只使用SortOrder字段中的奇数,所以在更改顺序时,我会从修改项目的当前值中加3或减3,然后重新设置(使用奇数重新排序项目)索引)。我也经常在每次插入或删除后重新播种。
答案 1 :(得分:1)
你真正需要担心的是交换任何两个字段。所有新条目都到最后,我确信你有一个机制,用户可以通过这种机制更改订单。订单更改,向上或向下移动,实际上是与相邻字段的交换。您真正关心的是所有字段都已正确排序。不要让数学上的审美感驱使你创造一些过于复杂的东西。 (删除后你的序列中会出现漏洞,但没关系。这是一个用于ORDER BY的内部序列标记。这些数字不需要连续。)