Пример ситуации:
Есть сайт. На нём есть список товаров. Сортировка товаров задаётся вручную администратором.
Администратор захотел перенести товар с 48 позиции на позицию между 2 и 3 товаром.
Вопрос:
Как организовать структуру базы данных, чтоб такая операция выполнялась с минимальным усилием сервера?
Предполагаемые варианты:- Сделать в таблице колонку "позиция". Товары будут получать позиции в виде: 1, 2, 3, 4, 5... При смене позиции 48 товара на 3, всем товарам между 2 и 48 необходимо будет увеличить позицию на один, а 48-му сменить позицию на 3.
- Сделать в таблице колонку "значимость". Товары будут получать значимость в виде: 100, 200, 300, 400, 500... При смене позиции с 48 на 3, необходимо будет получить значение значимости 2 и 3 товара и 48-му сменить значимость на среднее значение от полученных. Но со временем можно будет дойти до того, что значения значимости будут идти по порядку и наступит первый предполагаемый вариант, либо надо будет пройтись по всем товарам и установить значимость снова в виде 100, 200, 300, 400, 500...
Подскажите, как лучше организовать структуру. Может есть хорошее решение для такой задачи?