позволять через CIBlockElement::Add() добавлять элементы с заранее известным ID

Рейтинг: -0.6528  
Отложено
Предложил Пользователь 17890 17.03.2014 17:14:14

позволять через CIBlockElement::Add() добавлять элементы с заранее известным ID

Предвижу вопросы, зачем это может быть нужно, сразу отвечу:
в ID идет автоинкремент, поэтому при удалении возникает фрагментация. Я хочу бывшие удаленные элементы добавлять с теми же ID, с которыми они существовали ранее.
Рейтинг: 0.0731  
Ответил Жуков Евгений 18.03.2014 11:02:25
Можем лишь предложить не удалять, а деактивировать элементы.

Рейтинг: 1.5153  
Пользователь 32566 18.03.2014 08:40:55
Устранение фрагментации это конечно хорошо, но может возникнуть проблема со свойствами-привязками к элементам. Будут привязки к не тем элементам, к которым изначально была привязка.
2147483647- для жизни сайта мало?
Рейтинг: 0.457  
Пользователь 137665 18.03.2014 10:03:02
А чем плоха фрагментация? Замещение старых ID может вызвать много проблем, которые трудно отловить, особенно с учетом того, что битрикс не использует внешние ключи в базе.
Рейтинг: 0  
Пользователь 116828 18.03.2014 10:20:06
"За" не проголосую. Минус тоже не поставлю.
Вдруг в ходе дискуссии появится что-то интересное.)
Только утром на работе обсуждали, как же хорошо, что есть уникальный id,..
Рейтинг: 0  
Пользователь 17890 18.03.2014 13:41:05
сама фрагментация не при чем. вчитайтесь в идею еще раз: Я хочу бывшие удаленные элементы добавлять с теми же ID, с которыми они существовали ранее.

по-сути вопроса я понял, что нужно самостоятельно решать эту задачу, и не затрагивать ID элементов при этом.
Рейтинг: 0.1491  
Пользователь 116828 18.03.2014 14:07:03
Тогда непонятно опять же а почему удалять, а не деактивировать?
Или кто-то злостно удаляет нужные элементы, а вы их хотите достать из бэкапа и положить обратно, под тем же ИД?
Рейтинг: 1.3695  
Пользователь 95726 19.03.2014 22:25:05
А вот не надо в качестве идентификатора элемента как сущности, использовать идентификатор его представления в данных и все будет хорошо.