Как после удаления последней записи сделать чтоб id следующей новой записи стал как у удаленной записи чтоб не разрывать нумерацию?
в базе создаются временные записи, а потом некоторые из них удаляются. Как сделать чтобы если мы удалили сапись с самым большим id чтоб потом когда мы создадим новую запись, чтоб она принала id удаленной ранее записи, а не id +1
?
Алексей Уколов, ну почему же. Например, в базе данных создается заявка и после апрува заявки запускается некий функционал создающий например товары в базе и прочие записи. а тут нам сказали написать программу, которая бы подсасывала данные из файла и на его основе создавала такие же сущности, как заявка. Но сказали что напрямую - без создания заявки. Так нам легче создать програмно заявку и заполнить ее и вызвать ее функционал, который создаст то что надо, а потом просто удалить заявку. это быстрее чем переписывать логику..
Дмитрий, нет. там суть в том что в проекте уже есть функционал создающий записи оперделенного вида. Этот функционал очень сложный. И он имеет легкое api для заполнения входными данными. Заполняются эти данные так же и через UI. Но вот сейчас разработчик пишет другую программу, которая должна брать на вход те же данные и создавать те же записи в базе что и тот старый функционал. Только не создавая промежуточных заявок. Поэтому гораздо дешевле задействовать уже имеющийся функционал, а заявки просто после того как их механизм отработает удалять.
Слава, а для всех остальных записей из самой заявки какие данные нужны? Если старый функционал связывает данные с заявкой, то не получится у вас, что вы создадите данные, удалите заявку, создадите новую заявку, и получите связь данных с "левой заявкой"?
Вы всё равно будете иметь разрывы в записях: создана запись id=n (счётчик следующей записи n+1), после неё будет создана другая запись id=n+1 (счётчик следующей записи n+2), а после будет удалена запись n, счётчик сброшен до n+2.
pantsarny,
Так вы наложите на обычную запись -
внешние связи, почтовые сервисы. очереди. кжш и тд.
И в одно мгновение, где то остается память по старой записи и человек получит доступ туда, куда ему не нужно.
Конечно, все это можно обработать. но лучше не обрабатывать.
если есть внешние связи - то бд не позволит оставить несвязанные данные
если есть внешние связи в БД, а не логические в приложении.
Сохраняйте ID удалённых записей в пуле. А при создании новой записи делайте выборку доступных id и создавайте запись с id из этого пула. После создания, не забудьте удалить id из пула.