Итак, у меня есть таблица избранных пользователей. Там их несколько миллионов.
В настоящее время они имеют только три столбца: id
(pk), userId
и someFkRef
. Там есть индекс на userId
, чтобы я мог быстро выбирать избранных пользователей.
В настоящее время они упорядочены с помощью id
, который фактически является только порядком вставки. Мы хотели бы предложить пользователю возможность переупорядочить свои фавориты, скорее всего, посредством какого-то взаимодействия с перетаскиванием.
Мой первый (и я подозреваю наивный) подход к этому будет просто добавить столбец order
и составной индекс над userId
, order
. Однако при отражении, когда пользователь перемещает свой элемент на некоторое расстояние по списку, все промежуточные строки между начальным положением позиции и конечной позицией будут нуждаться в их пересчитанном столбце order
, и, следовательно, индекс тоже.
Это (скорее всего) плохой.
Прежде чем я потрачу возраст, пытаясь точно определить, насколько плохо, мне интересно, есть ли лучшее представление на основе таблиц, которое дешевле манипулировать с видами операций, описанными выше.