Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> пересортировка id после удаления значения, как оптимально отсортировать по номеру  
:(
    Опции темы
oppo
Дата 6.6.2007, 09:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 18
Регистрация: 15.7.2006

Репутация: нет
Всего: нет



Доска объявлений, их например 1000. Задача после удаления администратором объявления сохранить цифровой порядок нумерации объявлений. Пока вижу ,например после удаления записи 995 , делать от этого пункта вниз update id  (-1)  - получается куча запросов .. Как это бы оптимизировать .Спасибо.
PM MAIL   Вверх
rMaveric
Дата 6.6.2007, 09:51 (ссылка) |    (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 375
Регистрация: 18.7.2003

Репутация: нет
Всего: 6



А для чего это вообще надо??? Не вижу смысла


--------------------
Моя благодарность не будет иметь границ. в определенных рамках конечно ;)
---
Веду IT блог
PM MAIL WWW ICQ   Вверх
oppo
Дата 6.6.2007, 09:54 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 18
Регистрация: 15.7.2006

Репутация: нет
Всего: нет



Цитата
А для чего это вообще надо??? Не вижу смысла 
 полностью согласен -  но начальство велело ..
PM MAIL   Вверх
SelenIT
Дата 6.6.2007, 15:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


баг форума
****


Профиль
Группа: Завсегдатай
Сообщений: 3996
Регистрация: 17.10.2006
Где: Pale Blue Dot

Репутация: 9
Всего: 401



1) Использование аутоинкрементного ID для нумерации - одно из наитягчайших преступлений против самой идеи реляционных БД (да и любых других по сути) и никогда не остается без наказания (в форме лишнего гемора, нежданных коллизий, падения быстродействия и т.п. - вплоть до дедлоков). Для нумерации нужно завести отдельное поле.

2) Если база MySQL и версия позволяет, обновлять это поле можно одним запросом - присвоить ему кол-во записей с id, меньше или равным id данной записи (используя join таблицы с ней самой или подзапрос). Вечером попробую набросать пример (сейчас просто под рукой нет инструментария)...

3) Какое начальство запрещает считать порядковый номер записей непосредственно в выборке, вообще не напрягая этим базу? smile

упс... что-то я тоже усложнил задачу в п.2...
Цитата(oppo @  6.6.2007,  09:41 Найти цитируемый пост)
делать от этого пункта вниз update id  (-1)  - получается куча запросов ..

Код
UPDATE table SET num = num-1 WHERE id > 995

это разве куча?

Это сообщение отредактировал(а) SelenIT - 6.6.2007, 15:08


--------------------
Осторожно! Данный юзер и его посты содержат ДГМО! Противопоказано лицам с предрасположенностью к зонеризму!
PM MAIL   Вверх
oppo
Дата 6.6.2007, 15:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 18
Регистрация: 15.7.2006

Репутация: нет
Всего: нет



спасибо (я виноват неточно -номера планируется делать отдельным полем (не id) )
PM MAIL   Вверх
rMaveric
Дата 6.6.2007, 19:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 375
Регистрация: 18.7.2003

Репутация: нет
Всего: 6



Да все равно отдельным полем или в качестве ключа. Сама идея является ошибочной, и твоя задача как реализатора проекта сделать как нужно, а не так как хочет начальство. Если надо объясни начальству чем это грозит.


--------------------
Моя благодарность не будет иметь границ. в определенных рамках конечно ;)
---
Веду IT блог
PM MAIL WWW ICQ   Вверх
MoLeX
Дата 7.6.2007, 14:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Местный пингвин
****


Профиль
Группа: Модератор
Сообщений: 4076
Регистрация: 17.5.2007

Репутация: 7
Всего: 140



И как ты допустил начальство к БД??? 


--------------------
Amazing  smile 
PM MAIL WWW ICQ   Вверх
oppo
Дата 7.6.2007, 15:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 18
Регистрация: 15.7.2006

Репутация: нет
Всего: нет



есть ТЕХ. ЗАД. в нем это указано КАК ОБЯЗАТЕЛЬНЫЙ ПУНКТ - понятно я высказал свое ФЭ  ....
PM MAIL   Вверх
rMaveric
Дата 7.6.2007, 15:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 375
Регистрация: 18.7.2003

Репутация: нет
Всего: 6



oppo, процитируй пожалуйста этот пункт.


--------------------
Моя благодарность не будет иметь границ. в определенных рамках конечно ;)
---
Веду IT блог
PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Базы Данных | Следующая тема »


 




[ Время генерации скрипта: 0.0525 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.