Nejjednodušší metodou z hlediska kódu je použití stylu propojeného seznamu, kde máte id dalšího prvku, spíše než hodnotu objednávky. To je méně užitečné v malých seznamech, ale když začnete zvětšovat velikost seznamu, aktualizace/přesuny/odstranění budou mnohem čistší a zabrání případné aktualizaci tisíců n-tic, aby se provedla změna 1 objednávky.
++ Nemám po ruce přesný příklad kódu, ale zavolali byste pro všechny seznamy uživatele
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;
Tím byste získali všechny příspěvky jednoho uživatele a pak byste měli pole, které obsahuje id dalšího příspěvku. Chcete-li začít, budete potřebovat klíč k identifikaci prvního příspěvku (uložte ID prvního příspěvku do informací o uživateli). Poté, co vytáhnete první příspěvek, uchopíte jeho „další“ hodnotu a použijete ji k identifikaci dalšího příspěvku.
Na krátký seznam to vypadá trochu šíleně, ale představte si uživatele s 1000 příspěvky. Pokud potřebují přidat 1 příspěvek na 2. pozici. V tradičním numerickém objednávkovém systému byste nyní museli aktualizovat 999 dalších řádků aktualizací +1. S tímto řešením, pokud potřebujete vložit příspěvek na druhou pozici, jednoduše se zeptáte na první příspěvek, abyste získali jeho další hodnotu. Jakmile ji získáte, změníte ji na hodnotu nového druhého příspěvku a nastavíte další hodnotu druhého příspěvku tak, aby byla původně držena prvním.
[1st Post] --Next---> [2nd Post] --Next---> [3rd Post]
Po vložení:
[1st Post] -. .--> [2nd Post] --Next---> [3rd Post]
`--Next--> [New 2nd Post]--`