CREATE TABLE item ( link MEDIUMINT UNSIGNED PRIMARY KEY NOT NULL,
title TEXT NOT NULL,
rank INT UNSIGNED NOT NULL AUTO_INCREMENT,
notes TEXT
) ENGINE = INNODB;
У меня проблемы с реализацией. rank - это заданный пользователем рейтинг, который можно изменить в любое время, а элементы можно добавлять и удалять в любое время. Проблема в том, что я хотел бы, чтобы ранги были уникальными и всегда располагались между 1 и n (n - это количество строк в таблице). IE: если пользователь меняет ранг элемента 5 на 2. Предыдущий элемент ранга 2 должен стать рангом 3, предыдущий ранг 3 переходит на ранг 4, а предыдущий ранг 4 становится новым рангом 5. Аналогично, для удаления и создания все элементы с большим или меньшим рейтингом должны каскадно опуститься на одну или более одну соответствующую операцию.
Существует ли какая-то модель или методика для простой реализации этого?
Спасибо за любую помощь,
Michael