o dziwo nie potrafię znaleźć rozwiązania swojego problemu w internecie, dlatego będę również wdzięczny za rzucenie kilku keywordów (lub wskazówek) zamiast gotowego rozwiązania

Moja tabela "katerogie" zawiera (dla maksymalnego uproszczenia) następujące pola
id - identyfikujące daną kategorię
name - wiadomo
order - w celu określenia "customowej" kolejności kategorii
W Panelu Administracyjnym mam wylistowane wszystkie kategorie, posortowane według pola order. W każdym wierszu z kategorią znajdują się też 2 strzałki (do prostego przemieszczania kategorii w górę/w dół).
Moje pytania są następujące:
- jak najprościej (np. bez używania funkcji MAX() dodać nową kategorię o "najstarszej" kolejności ?
- jak usunąć kategorię tak, by nie została luka (np. order po usunięciu kilku kategorii wygląda tak: 0, 7, 8, 9, 13)
- jak najprościej (przy pomocy wyżej wymienionych "strzałek") zamienić 2 kategorie miejscami (zakładam, że order ma klucz UNIQUE) ?
- linijkę wyżej zamieniam miejscami dwie kategorie, które leżą obok siebie. jak się ma sytuacja w przypadku, gdy chcę przesunąć kategorię np. z pozycji 2 na zajętą pozycję 10, tak aby reszta się ładnie poukładała ?
- czy istnieje lepszy sposób na zaprojektowanie tego niż wyżej przedstawiony ?
Dodam, że istnieje także druga tabela z podkategoriami, w której każdy element ma przypisanego rodzica i swoją kolejność w obrębie danej nadkategorii.
Pozdrawiam i z góry dziękuję za wszelką pomoc,
Nivelis