Я работаю над системой меню, управляемой данными, в PHP / MySQL. Я не могу понять, как удалить пункты меню, не оставив некоторые из них сиротами.
Все пункты меню верхнего уровня имеют нулевое (0) значение родительского идентификатора, указывающее, что они являются верхним уровнем. В моем сеточном представлении отображаются все меню, элементы верхнего уровня и подменю, и он позволяет множественный выбор для удаления.
Проблема в том, что, если один из элементов, выбранных в сетке для удаления, является элементом меню верхнего уровня, все подменю под ним станут бесхозными.
Какую общую логику мне нужно реализовать?