Общие > Базы данных

Очередная нумерация

<< < (4/5) > >>

Макс:

--- Код: ---SET @sort := 0;
UPDATE tab SET sort = @sort := @sort + 1 ORDER BY date;
--- Конец кода ---

APL:
Чего накинулись на человека? :) Может из спортивного интереса...

CGVictor:

--- Цитировать ---Croaker:
Зачем?
--- Конец цитаты ---

У меня задача - написать интеграцию с very, very hemmoroidal database... Не я это придумывал изначально.
Макс
Спасибо! Попробую!

Croaker:
CGVictor

Тем не менее. Опиши конкретную задачу, для которой тебе понадобилось так оптимизировать базу.

Phoinix:
Croaker


--- Цитировать ---Опиши конкретную задачу, для которой тебе понадобилось так оптимизировать базу
--- Конец цитаты ---


Позволю себе описать:

Есть таблица где хранится дерево каталогов, в нем сортировка своя, и трогать её не будем, а есть вторая таблица записи которой относатся к разным узлам дерева. Причем к узлу может относится разное количество записей. Как производить их сортировку?

Создаем дополнительно поле sort в котором мы указываем свой(!) порядок для каждого узла:

id | title | category | sort
1 | title1 | 1 | 1
2 | title2 | 1 | 2
3 | title3 | 1 | 3
4 | title4 | 2 | 1
5 | title5 | 2 | 2
6 | title6 | 2 | 3
7 | title7 | 2 | 4
8 | title8 | 3 | 1
9 | title9 | 3 | 2
10 | title10 | 4 | 1
...

Добавляя дополнительные записи в узел, мы просто бепем максимальное значение поля sort для данного узла и устанавливаем на 1 большую

Перемещение порядка скажем на 1 пункт вверх (вниз) происходит учень просто: в одной записе sort уменьшеем на 1 в другой увеличиваем...
Все работает прекрасно до того момента пока мы не начнем удалять записи, тогда у нас между некоторыми записями разница sort будет больше чем еденица, и соответсвенно наш замечательный запрос перемещения записи работать не будет. мало того, испортит весь порядок...
Когда запись удаляется одна, проблем особых нет: просто уменьшаем поле sort последующих записей группы на 1. А если записией удаляется сразу несколько, причем не подряд, а выборочно из определенного узла? Тогда просто проводим подобие индексации поля sort на восстановление порядка.

Вообщем-то вся трабла возникает из-за запроса перемещения +-1 поля sort. Да еще если мы перемещаем запись на несколько пунктов вверх (вниз)...

К id судя по всему, я надеюсь, в данном вопросе это поле не имеет никакого значения...

Навигация

[0] Главная страница сообщений

[#] Следующая страница

[*] Предыдущая страница

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 
Перейти к полной версии