Desculpe nao ter sido tão detalhista, é q o tempo anda curto... rs.
Esclarencendo:
A inviabilidadade de possuir apenas: id e iroot .
> O problema prático aqui ocorre quando há mais de 2 níveis, correto? Porque a
> ordenação com dois níveis poderia ser feita através de um
>
> order by idroot, id;
> Correto, ou estou ignorando algum ponto?
Está correto, o problema só acontece quando se tem mais de dois
níveis, alguns desenvolvedores acabam criando mais uma(ou mais)
tabela(s), mas o sistema nao deixaria de estar com limite de níveis
nas subcategorias. Seja 3 ou 4 Níveis.
> > Esse campo deve ser atualizado a cada inserção/update/deleção de
> > categorias, e em caso de deleção fazer uma checagem rigorosa quanto a
> > dependentes. Para nao ter categoria orfã.
>
> Aqui fiquei com uma dúvida muito forte:
>
> Até entendo que isso seria passível de ocorrer no MySQL, já que ele é um
> RDBMS que historicamente tinha diversas questões com Integridade
> Referencial (pessoal, sem Flame Wars nem indignações, isso é fato e não
> é o foco deste thread), mas no PostgreSQL isso aconteceria também? Quero
> dizer, já que é auto-relacionamento e é criada uma constraint pra isso,
> mesmo que fosse excessivamente trabalhoso para a base processar uma
> checagem recursiva ela não faria isso de qualquer forma?
Tirando a dúvida, realmente a parte de checagem deve ser feito no
MySQL. O PostgreSQL não permite a deleção já que há restrição definida
no constraint.
> > Ainda estou concluindo o material para divulgar na net, mas se
> > precisar de mais detalhes me envie um e-mail.
>
> Por favor quando você publicar isso me avise pois o assunto é
> interessantíssimo.
Estarei palestrando aqui em Brasília, mas estarei mandando a proposta
para o PHP Conference Brasil 2008. Mas qualquer coisa, se ocorrer
algum evento relacionado, me envie um convite, havendo disponibilidade
na data, terei o maior prazer em estar compartilhando o material.
[],s