Una possibile soluzione: quando qualcuno mette un articolo di ID=x al posto n-esimo fai:

BEGIN TRANSACTION
UPDATE tabella SET ORDER=ORDER+1 WHERE ORDER >= N AND ID!=x
UPDATE tabella SET ORDER=ORDER-1 WHERE ORDER < N AND ID!=x
UPDATE tabella SET ORDER=n WHERE ID=x
SELECT MIN(ORDER) FROM tabella
UPDATE tabella SET ORDER=ORDER-minOrder
END TRANSACTION