Menu de categorias/subcategorias sem limite de niveis

vpess

Power Member
Boas.

Precisava de construir um menu de categorias sem limite de níveis ou seja:

Tabela Categorias
| idcat | idpai | Nome |

- Em que as categorias de nível 1 seriam as que tinham o idpai vazio;

- As categorias de níveis posteriores teriam o idpai preenchido com o idcat a que pertencem;

Isto permitiria ter um menu de categorias ilimitado.

O problema é conseguir criar um query que faça isto mesmo. :rolleyes:



Peço então a vossa ajuda para me ajudarem a construir esta query, em php e mysql.
 
Boas.

Precisava de construir um menu de categorias sem limite de níveis ou seja:

Tabela Categorias
| idcat | idpai | Nome |

- Em que as categorias de nível 1 seriam as que tinham o idpai vazio;

- As categorias de níveis posteriores teriam o idpai preenchido com o idcat a que pertencem;

Isto permitiria ter um menu de categorias ilimitado.

O problema é conseguir criar um query que faça isto mesmo. :rolleyes:



Peço então a vossa ajuda para me ajudarem a construir esta query, em php e mysql.

Para isso o idpai nao pode ser chave primaria da tabela, e tem de admitir nulos, logo tens que cirar outro campo para chave primaria, visto que o idcat nunca poderá ser
 
Aquilo que tu pretendes é uma relação unária.

A única hipótese de evitares null's neste caso é utilizares duas tabelas:

CATEGORIA
|idcat | Nome

CATEGORIA_TEM_SUBCATEGORIA
|idcat | idcat_sub

Onde idcat e idcat_sub são chaves estrangeiras vindas da tabela CATEGORIA.

Deste modo cada categoria pode ter N sub-categorias, bastando para tal inserir os registos respectivos na tabela de relação. Assim, e uma vez que esta é a solução típica de uma relação unária 1-N, podes ter sub-categorias partilhadas por várias categorias.
 
Última edição:
Back
Topo