1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

Menu de categorias/subcategorias sem limite de niveis

Discussão em 'Programação' iniciada por vpess, 16 de Julho de 2009. (Respostas: 2; Visualizações: 726)

  1. vpess

    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.
     
  2. jpmor82

    jpmor82 Power Member

    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
     
  3. nfh

    nfh Power Member

    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: 17 de Julho de 2009

Partilhar esta Página