Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / поиск свободного id / 8 сообщений из 8, страница 1 из 1
02.05.2018, 11:04
    #39638915
Eluthar
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
поиск свободного id
Здравствуйте. Подскажите пожалуйста оптимальный способ для поиска свободного id. Т.е. скажем идет порядковая нумерация записей, и надо узнать, какой номер не занят. Если в таблице 64 записи, то надо узнать что следующий id будет 65, и наоборот, если какая-то запись была удалена, то надо узнать тот пустующий id, вместо добавления 65. Изобретать кривой велосипед не хочу, вдруг есть простой способ.
...
Рейтинг: 0 / 0
02.05.2018, 13:34
    #39638975
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
поиск свободного id
"Есть много способов приготовить кошку..."

Одним из наиболее правильных является полный запрет на удаление записей.
...
Рейтинг: 0 / 0
02.05.2018, 15:11
    #39639008
Eluthar
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
поиск свободного id
Dimitry Sibiryakov, хмм, значит получается все же придется листать каждую "строку"? Я просто думал может есть какой-то встроенный инструмент для быстрой проверки номера.. а то если представить, что будет несколько десятков тысяч строк / записей, то добавление новой с полной проверкой наверное будет вызывать тормоза.
...
Рейтинг: 0 / 0
02.05.2018, 15:57
    #39639014
vkle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
поиск свободного id
Если заполнение "дырок" в последовательности id имеет архиважное значение, то есть смысл сделать отдельную дополнительную таблицу, куда заносится id удаляемой записи при удалении из основной таблицы и удаляется при добавлении.

Или, как уже подсказали выше, запись не удалять из таблицы, а отмечать как удаленную, чтобы потом можно было записать в её поля новые данные.

PS: Какой-то практический смысл в заполнении "дырок" имеется? Может быть, гораздо проще при удалении записи перенумеровать оставшиеся строки заново?
...
Рейтинг: 0 / 0
02.05.2018, 16:38
    #39639030
Eluthar
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
поиск свободного id
Хм, т.е. в реальных форумных движках и просто в движках комментариев, сайтов, новые сообщения не занимают id старых?
...
Рейтинг: 0 / 0
02.05.2018, 16:39
    #39639031
Eluthar
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
поиск свободного id
старых удаленных* я имею в виду
...
Рейтинг: 0 / 0
02.05.2018, 16:55
    #39639043
vkle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
поиск свободного id
ElutharХм, т.е. в реальных форумных движках и просто в движках комментариев, сайтов, новые сообщения не занимают id старых?Если б новый комментарий или топик получиал бы ID удаленного, в итоге бардак полный настал бы. Вот, к примеру, Вы где-то ссылаетесь "...обсуждали в топике ... ID=123456..." Топик со временем удалили по какой-то причине, под его ID через год обсуждается другая тема и... что? Вооот. А так по соответствующему полю движок определит, что топик удален и выдаст соответствующее сообщение. Заметьте, когда запись реально не удаляется, можно легко различить "удалено" и "не существует".
...
Рейтинг: 0 / 0
02.05.2018, 17:06
    #39639047
Eluthar
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
поиск свободного id
vkle, опаа, а вот такой случай я не учел) что ж, тогда решено) благодарю за разъяснения :)
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / поиск свободного id / 8 сообщений из 8, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]