Я помню, что этот вопрос был похож на предыдущий пост. Его можно найти здесь:
Порядок приоритетов SQL Server
Связанный список все еще будет работать, но это гораздо более простое решение, если вы не хотите отслеживать отношения родитель-потомок.
Похоже, что вы хотите, это связанный список. Таким образом, вы всегда знаете, что будет дальше, и вам не нужно будет угадывать. Таким образом, поле позиции будет указателем на объект, следующий за ним.
Проблема, с которой я всегда сталкивался при использовании произвольных чисел для позиции, заключается в том, что она может быстро упасть до энтропии. Что, если будет добавлено больше элементов, число станет последовательным и т. Д. И т. Д. Это может быстро стать неуправляемым, если список элементов изменит положение.
Чтобы реализовать это в таблице сервера SQL, добавьте еще одно поле с тем же типом данных, что и первичный ключ. Если поле пустое, то это нижний элемент в списке. Если вы храните несколько списков в одной и той же таблице, вы, вероятно, захотите добавить еще одно поле с именем ListID, в котором все строки с одинаковым ListID принадлежат одному списку. Так что-то вроде этого.
Table:
ID INT
ListID INT
Child INT
Pararent Row For first list:
1, 1, 2
First Child
2, 1, 3
Second Child
3, 1, NULL
Parent Row for second list:
4, 2, 5
First Child
5, 2, 6
Second Child
6, 2, NULL
Вероятно, вам придется выполнять вставку и обновление каждый раз, когда вы добавляете строку, что может быть немного утомительно, но это всегда будет составлять список.