I'd create an int field in the database called something obvious like orderby (no spaces...) and put a unique key on it.
Then, order by that one.
Here's the trick. Use numbers with spaces between them to start. I.e. the first item is 100, then 200, then 300, then 400.
Now, when you add a new item, there's plenty of free space between the numbers already assigned to stick the new items into. Split it. New item between the ones at 300 and 400? number it 350... and so on.