|
ru.cgi.perl- RU.CGI.PERL ------------------------------------------------------------------ From : Andrey Sapozhnikov 2:5020/400 30 Aug 2004 20:42:21 To : Alexander V. Gaiduk Subject : Re: Hа: Программируем MySQL под CGI Perl -------------------------------------------------------------------------------- Alexander V. Gaiduk пишет: >>Alexey Gradovtsev пишет: >> >>> AS> Тоже некузяво :) Hо почему бы не добавить к записи N флажок >>> AS> указывающий на то, что запись N+1 свободна? Тогда поиск дырки > > сведется к: > > а если N+2 тоже свободна, то в свободной N+1 этот флажок так же должен быть? Как может быть установлен флажок в том, чего нет? Если N+2 свободна, то при вставке записи N+1 с N-ной флаг снимется, а на N+1-ой установится. Если N+2 занята, то при вставке записи N+1 c N-ой флажок снимется и нигде не установится. Если нужна массовая запись, а не по одной записи, то определить размеры "дырки" легко. Пусть запись N имеет флажок - выполняем: SELECT id FROM tbl WHERE id > :N+1 ORDER BY id DESC LIMIT 1; и получаем первый следующий за "дыркой" занятый id. Hаличествующие-то записи искать легко. Трудно искать отсутствующие. -- Андрей --- ifmail v.2.15dev5.3 * Origin: Demos online service (2:5020/400) Вернуться к списку тем, сортированных по:
Архивное /ru.cgi.perl/657712077671.html, оценка из 5, голосов 10
|