Най-простият метод от гледна точка на кода е да използвате стил на свързан списък, където имате следващ идентификатор на елемент, а не стойност на поръчка. Това е по-малко полезно в малки списъци, но когато започнете да увеличавате размера на списъка, прави актуализациите/преместванията/премахванията много по-чисти и предотвратява евентуалното актуализиране на хиляди кортежи, за да направите промяна в 1 поръчка.
++ Нямам точен пример за код под ръка, но бихте направили обаждане за всички списъци на потребител
SELECT Posts.id, Posts.next, Posts.content, User.firstPost FROM db.posts AS Posts
JOIN db.user as User ON Posts.ownerid = User.id
WHERE User.id='123' AND Posts.active = 1;
Това ще получи всички публикации на един потребител и тогава ще имате поле, което съдържа идентификатора на следващата публикация. За да започнете, ще ви е необходим ключ за идентифициране на първата публикация (съхранете идентификатора на първата публикация в информацията за потребителя). След като изтеглите първата публикация, грабвате нейната стойност „следваща“ и я използвате, за да идентифицирате следващата публикация.
Това изглежда малко лудо за кратък списък, но помислете за потребител с 1000 публикации. Ако трябва да добавят 1 публикация на 2-ра позиция. В традиционната система за цифрово подреждане сега ще трябва да актуализирате 999 други реда с +1 актуализация. С това решение, ако трябва да вмъкнете публикация на втора позиция, просто заявявате първата публикация, за да получите следващата й стойност. След като го получите, вие го променяте, за да бъде стойността на новата втора публикация, и задавате следващата стойност на втората публикация да бъде тази, която първоначално се държи от първата.
[1st Post] --Next---> [2nd Post] --Next---> [3rd Post]
След вмъкване:
[1st Post] -. .--> [2nd Post] --Next---> [3rd Post]
`--Next--> [New 2nd Post]--`