Автоматически движком id присваиваются в порядке увеличения по мере создания категории либо товара, и, как по мне, так получается полная каша. Раньше я заморочился и переделал все id: для категорий верхнего уровня - 001, 002, 003.. для вложенных категорий - 001001, 001002.. дла категорий второго уровня вложенности - 001001001, 001001002..ну и для товаров: в категории первого уровня вложенности: 001000000001, 001000000002.. в категории второго уровня вложенности: 001001000001, 001001000002.. никто подобным не занимался? если занимался, то как реализовывал?
Не движком, а базой - это автоинкремент. Чтоб база сама ничего не присваивала, нужно сразу при создании записи отправлять и значение id. Учитывая, что все категории хранятся в одной таблице задача становится чрезмерно сложной, поскольку прежде чем сгенерировать id для новой категории, нужно узнать какое id было у последней категории этого уровня, а без каких-то особых извращений мы можем узнать только id последней записи в таблице, а это может быть категория другого уровня. Получается, что нужно выдернуть все id определённой длины, отсортировать и найти последнее, прибавить к нему единицу и присвоить новой категории. В общем, много бессмысленной работы. Если важно знать для каждой категории её уровень вложенности, лучше просто добавить ещё одно поле и писать туда уровень вложенности. А для товаров это вообще не имеет никакого смысла, учитывая, что товарам легко присваивается любая категория и у одного товара может быть неограниченное количество категорий любого уровня.
это решается при заполнении экселевского файла. да и мешанину из id видно только в нем, оттуда и растут ноги желания все это дело упорядочить. да, с этим беда выходит. пока думаю жестко привязать товар к категории, но кто знает, как дело повернется. Вопрос был как раз о целесообразности вышеупомянутых манипуляций. Сейчас вот немного посижу, да и откажусь к чертям от этой рационализаторской идеи).
А зачем все эти манипуляции. Вы хотите вручную устанавливать id? Не боитесь ошибок ручного ввода, когда на один и тотже id попадет 2 товара/категории? Можно конечно сделать скрипты, которые будут переделывать id при каждом добавлении новой записи в базу, но это будет простой тратой времени.