Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: обновление id [2]

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (2): « 1 [2]   

> Описание: как обновлять id после удаления записи
Мелкий Супермодератор
Отправлено: 23 Июня, 2015 - 11:31:18
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




То что ID гарантированно уникальный, а не последовательный и без дыр, надеюсь, уже доходчиво объяснили.

Goog1e пишет:
А можно ли создать запрос, где мы создаем поле и она будет у нас нумеровать строку таблицы,и конечно увеличиваться +1

Специфично для mysql:
https://toster[dot]ru/q/204297


-----
PostgreSQL DBA
 
 Top
LIME
Отправлено: 23 Июня, 2015 - 12:56:19
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




Мелкий а подумать? Плохому мог и я научить
 
 Top
Goog1e
Отправлено: 23 Июня, 2015 - 14:19:18
Post Id


Новичок


Покинул форум
Сообщений всего: 17
Дата рег-ции: Июнь 2015  


Помог: 0 раз(а)




Ch_chov пишет:
Goog1e, ID часто используются для формирования ссылок на отдельные страницы сайта

Я думал глупо давать айди поисковым системам.Айди сушествует для программиста внутри программы.Если мне надо давать информацию кому-то, лучше сделать как сказал Sail, создать карточку для пользователя.
При регистрации- создавать номер.И по номеру будет сопровождаться его редактирование,но точно не по айди.И тогда сколько я бы не менял айди,и ничего не изменится.Мне кажется так в ВК сделано.


LIME пишет:
LIME
Я даже не хочу комментировать этот бред,ибо ты зацикливавшийся на своей правоте, не хочешь понять что я хочу, может ты близок может ты почти нашел ответ на мой вопрос, но ты его не видишь, и опять и опять .....
(Добавление)
Goog1e пишет:
Интересует такой момент: Если удалить пользователя ,то сбивается нумерация ID.Как сделать,чтобы в базе у меня айди шли всегда +1


Выше задан этот вопрос. Я ищу конкретные действия,я не пытаюсь найти грабли.Я не пытаюсь понять что айди уникальное.
LIME пишет:
LIME
ты мог просто сказать , что ты можешь сделать так,и если тебе хочется сделать айди последовательным,можешь использовать такой запрос,и он автоматом будет закрывать дыри,или использовать такой способ через программу, и он будет автоматом после каждого запроса вызывается и опять базу делать последовательным.


Но каждый человек с своими червями.И каждый гнет свою линию.

Зачем удалять с базы,давай сделаем так, что он типа удален.Я не спрашивал ,как можно сделать,чтоб пользователь был как бы удален,я могу создать поле лишнее,и сделать его силку на отдельную таблицу,и там записать состояние работника и добавить там кучу вариантов(уволен,на больничном, временно отстранен и .......)

Трудно,ох как трудно(
 
 Top
DelphinPRO
Отправлено: 23 Июня, 2015 - 16:03:35
Post Id



Активный участник


Покинул форум
Сообщений всего: 7187
Дата рег-ции: Февр. 2012  


Помог: 353 раз(а)




Goog1e пишет:
При регистрации- создавать номер.И по номеру будет сопровождаться его редактирование,но точно не по айди.И тогда сколько я бы не менял айди,и ничего не изменится.Мне кажется так в ВК сделано.

ID это не номер, который дается при регистрации?
ВКонтакте как раз айдишники и используются для адресации страниц пользователей.
Вы почитайте что вам Lime пишет. Повнимательнее почитайте.


-----
Чем больше узнаю, тем больше я не знаю.
 
 Top
LIME
Отправлено: 23 Июня, 2015 - 17:30:44
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




DelphinPRO как я ждал тебяУлыбка ато он аж выбисил
Главное ему дельные вещи толкую а он меня высмеивает! Как так????!!!
Бред
 
 Top
Goog1e
Отправлено: 23 Июня, 2015 - 20:41:56
Post Id


Новичок


Покинул форум
Сообщений всего: 17
Дата рег-ции: Июнь 2015  


Помог: 0 раз(а)




DelphinPRO пишет:
ID это не номер, который дается при регистрации?


Глупо такое писать.Кто сказал, что айди не дается. И кто вам сказал , что вы имеете доступ к полю именно айди(аутоинкремент). Я бы не был так уверен. Подмигивание
(Добавление)
LIME пишет:
LIME


Ты бы остальным помог.А мы тут сами разберемся))

Ch_chov очень помог ссылкой.Чуток разобрался.Я только начил Join впитывать).
 
 Top
armancho7777777 Супермодератор
Отправлено: 23 Июня, 2015 - 22:09:25
Post Id



Активный участник


Покинул форум
Сообщений всего: 4526
Дата рег-ции: Февр. 2011  
Откуда: Москва


Помог: 221 раз(а)




Goog1e пишет:
Шеф пришел сутра и сказал.Надо сделать вот так вот так.

Ваш шеф долбо*б.
Скажите ему, пусть сам тогда и программирует, дятел.
 
 Top
Ts.Saltan
Отправлено: 23 Июня, 2015 - 22:25:53
Post Id



Посетитель


Покинул форум
Сообщений всего: 384
Дата рег-ции: Дек. 2013  
Откуда: Belarus


Помог: 22 раз(а)




Goog1e пишет:
Глупо такое писать.Кто сказал, что айди не дается. И кто вам сказал , что вы имеете доступ к полю именно айди(аутоинкремент). Я бы не был так уверен.

Как раз таки не глупо сделать id аккаунта id'ом записи в бд.
Вк сделано именно так. И там такая же ситуация с удалёнными страницами, например, id10000000 удалён

Товарищ LIME сказал дельную вещь, такое делается везде и всегда
в движках форумов, соц сетях и проч и проч
и не только потому что так правильно
а затем, чтоб не было граблей со связями из других таблиц
(Добавление)
Ну а по теме
после удаления записи можно сделать сдвиг последующих записей
допустим, удалили id = 13
CODE (SQL):
скопировать код в буфер обмена
  1. UPDATE tablename SET id = id - 1 WHERE id > 13; --Сдвигаем ID
  2. ALTER TABLE tablename AUTO_INCREMENT = (SELECT MAX(id) FROM tablename); --Правим AI
 
 Top
Goog1e
Отправлено: 25 Июня, 2015 - 16:03:49
Post Id


Новичок


Покинул форум
Сообщений всего: 17
Дата рег-ции: Июнь 2015  


Помог: 0 раз(а)




armancho7777777 пишет:
Ваш шеф долбо*б.
Скажите ему, пусть сам тогда и программирует, дятел.

Узбакойся))) шеф давно уволен.Он всего лишь был создан для примера))
(Добавление)
Ts.Saltan пишет:
после удаления записи можно сделать сдвиг последующих записей
допустим, удалили id = 13


Ты как Ангел, который спустился с небес!!!


Ts.Saltan пишет:
ALTER TABLE tablename AUTO_INCREMENT = (SELECT MAX(id) FROM tablename); --Правим AI


Спасибо за идею.Если ты видел, я хотел, каждый рас при добавлении записи(заранее узнавать макс айди) делать лишний запрос,чтоб узнать какой номер инкремента.
(Добавление)
Ts.Saltan пишет:
Товарищ LIME сказал дельную вещь, такое делается везде и всегда
в движках форумов, соц сетях и проч и проч
и не только потому что так правильно
а затем, чтоб не было граблей со связями из других таблиц


Я и не говорил, что он глупый, но он летит впереди паровоза.Я пост создал,чтоб решить некие конфликты в голове.Если бы у меня был бы проект, и мне нужно было бы такое решение,я бы ему сказал, ты попал в яблоко.Но если его совет не подходит для моих червей в голове, я кажись так и передаю ему.
 
 Top
esterio
Отправлено: 25 Июня, 2015 - 17:26:06
Post Id



Активный участник


Покинул форум
Сообщений всего: 5025
Дата рег-ции: Нояб. 2012  
Откуда: Украина, Львов


Помог: 127 раз(а)




Goog1e
Суну и я своих 5 копеек. У Lime такая манера изложения и он говорил дельную вещь.
Поймите сдесь на форуме поднимаються одни и теж вопросы. Если каждый из них расписивать в деталях, то можно целую статью писать. А так он сказал конечное решение которое будет работать без костилей минуя ваши черви в голове. В общем привикайте. Все это проходили и Вы пройдете
 
 Top
Zuldek
Отправлено: 25 Июня, 2015 - 18:04:23
Post Id


Постоянный участник


Покинул форум
Сообщений всего: 2122
Дата рег-ции: Июнь 2010  


Помог: 50 раз(а)




Если вам нужно чтобы что-то шло подряд так и сделайте этот счетчик и ведите его подряд и показывайте там где хочет руководство чтобы нумерация шла по порядку.
А от непосредственно идентификатора записи нужно только то чтобы он был уникальных и не занимал уже существующие.
В больших проектах мы используем генератор идентификаторов, уникальных для всех нод всех типов во всем проекте через редис, чтобы можно было избежать коллизий и быстро получать эти значения, но вам это не нужно совершенно.

(Отредактировано автором: 25 Июня, 2015 - 18:05:25)

 
 Top
LIME
Отправлено: 25 Июня, 2015 - 18:08:02
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




Извращуги
(Добавление)
Друпалисты чтоли?
Ааа...срать
(Добавление)
Хотя всеже поясню
Точка отказа в виде общего контроллера на редисе? Одна все проекты? Серьезно?
А нельзя было найти более отказоустойчивый способ?
Оой...извращуги
 
 Top
DelphinPRO
Отправлено: 25 Июня, 2015 - 19:42:26
Post Id



Активный участник


Покинул форум
Сообщений всего: 7187
Дата рег-ции: Февр. 2012  


Помог: 353 раз(а)




Goog1e пишет:
Ты как Ангел, который спустился с небес!!!

Скорее Демон )) пришедший совратить заблудшую душу


-----
Чем больше узнаю, тем больше я не знаю.
 
 Top
Страниц (2): « 1 [2]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« SQL и Архитектура БД »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB