Io personalmente ho realizzato vari pannelli per permettere all'utente di decidere l'ordine di certe categorie. Diciamo che la cosa ideale sarebbe fare in modo che al momento dell'inserimento di una nuova voce, il campo ordinamento sia già riempito con il valore ultimo, ovvero:

SELECT FROM tabella MAX(ordinamento)

A questo si somma uno ed ottine il prossimo valore disponibile nell'elenco ordinato.

Cosi facendo ad esempio quando hai una sola voce:

uno - 0

e inserisci una seconda voce "due"

otterrai

uno - 0
due - 1

Una specie di auto_increment insomma.

Ovviamente poi va valutata la cancellazione di elementi intermedi e il "riassestamento" della sequenza dell'elenco.

Non so se ho risposto esattamente al tuo dubbio, cmq se vuoi ho del codice di ordinamento da postarti se potesse interessarti.