Ordenar Menu
Boa tarde,
Estou com um problema relacionado a ordenação e customização do mesmo.
Tenho uma tabela de menus que constam as colunas id, id_parent, titulo, ordem
onde possuem a seguinte construção:
CREATE TABLE `menus_subsites_itens` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`id_parent` int(11) DEFAULT NULL,
`titulo` varchar(45) NOT NULL,
`ordem` float NOT NULL DEFAULT '0'
) ENGINE=InnoDB DEFAULT CHARSET=latin1
o id_parent quando aplicado será do id do pai, a ordem recebe no momento da criação o mesmo valor do id para seguir o padrão de ordenação.
O ordem quando modificado pode receber um float dependendo da posição que será colocado tipo entre 1 e 2 executo uma formula (1/2)+1, se quero colocar o item depois do 2 executo a formula (1/2) + 2 antes do 1 executo a formula (1/2)
Encontrei o seguinte código sobre agrupamentos na consulta:
select * from menus_subsites_itens order by COALESCE(id_parent, id),id_parent is not null, ordem;
Ele funciona bem, se a ordem possui sincronismo, porém se desejo criar um novo subitem tipo id 30 com ordem 30 e quiser colocá-lo como subitem de um item do topo, a construção coalesce, não funciona adequadamente, pois coloca na parte inferior fora do subitens .
Existe uma forma melhor para que consiga fazer os agrupamentos e ordenações corretamente, podendo muda-las sem tantos transtornos?Discussão (0)
Carregando comentários...