あるテーブル内のデータの一覧表示機能がすでにあって、これに任意に変更できる並び順の仕組みを設けたいとき、

たとえば商品テーブルがあって、あるカテゴリの商品を一覧表示したときに表示順を変更できるようにしたいときは
商品ごとに並び順なんかの項目を設けて、プログラム側でソートするなりDB側でORDERかけたりするかと思います

このとき、ユーザに数値入力等をさせずに、
『この商品を一つ上に』『この商品を一番上に』というボタンを設けるなどして、
簡単な操作だけで並び順を変更させようとすると、プログラム側はどう作るのが良いもんでしょうか?

並び順自体は商品登録時に「並び順」としてそのときのエポック秒を入れるにしても、
DBでいうと『この商品を一つ上に』だと2回のupdateが、
『この商品を一番上に』だと一覧に出ている全商品数分のupdateが、
必要になってしまいそうなんですが、より良いやり方があったら教えてくださいおねがいします