I am using MySQL, I don’t have a good way to do this.
I have a table with a position field, which I need to keep track having values from 1 to 10,000.
Let’s say I insert a record in the middle at 5000th position. So position 5000 to 10,000 need to be updated to the new position; old 5000 become 5001, 5002 becomes 5003…
Is there a good way to implement this without affecting so many records, when 1 single position is added?
Adding from the position 1st is the worst.
I’d rethink the database design. If you’re going to be limited to on the order of 10K records then it’s not too bad, but if this is going to increase without bound then you’ll want to do something else. I’m not sure what you are doing but if you want a simple ordering (assuming you’re not doing a lot of traversal) then you can have a
prev_idandnext_idcolumn to indicate sibling relationships. Here’s the answer to your questions though: