resolvi da seguinte forma. criei uma tabela unica de produtos: > codigo > descricao > pai > tipo (produto ou grupo) na busca por produtos, a perfomance é razoavel. Na busca por grupos, a perfomance cai um pouco. resolvi naum quebrar a cabeça muito. serão no maximo 10 usuarios que utilizarao o sistema, e apenas 2 ou 3 terao acesso ao cadastro de produtos, entao resolvi naum estressar muito... --- Em delphi-br@yahoogrupos.com.br, Demian Lessa <[EMAIL PROTECTED]> escreveu > Você quer comparar o uso de SUBSTRING com um auto-relacionamento? Acho > que não... > > Um auto-relacionamento só resolve problemas de uma hierarquia em dois > níveis (grupo -> item). E se o agrupamento for em múltiplos níveis > (grupo -> subgrupo -> subgrupo -> item), como fica? SUBSTRING atende os > requisitos de consulta, qualquer que seja o grau de aninhamento. > > Se houver a possibilidade de múltiplos níveis, a única outra forma > razoável de resolver isso é através de funções que retornam record sets. > Isso é simples em ambientes como MS SQL Server, PostgreSQL, etc, mas o > custo, aí sim, é alto. A performance cai (para resultados razoavelmente > pequenos) e o resultado final pode ficar comprometido. > > Cordialmente, > > Demian Lessa > Salvador - Brasil > > Luiz Henrique Severo d Oliveira wrote: > > Utilizar substring numa query fica meio pesado, não? Se fizer um auto-relacionamento você descobre os pais e os filhos igualando os campos de código e auto-relacionamento. > > Pode não ser mais simples de implementar no banco mas acho que fica melhor na hora de acessar. > > > > > > Abraços > > Luiz Henrique Severo d Oliveira > > RPG Soluçoes > > www.rpgsolucoes.com.br > > > > > > > >> Mensagem: 8 > >> Data: Mon, 10 Jan 2005 17:09:25 -0300 > >> De: Demian Lessa <[EMAIL PROTECTED]> > >> Assunto: Re: RES: Sugestão sobre implementação > >> > >>Não aconselho utilizar auto-relacionamentos. Vão dar trabalho para > >>processar, gerar saídas, etc. Por que não usa um campo STRING para o > >>código e uma indicação se o registro é um item ou um grupo? Assim, para > >>selecionar todos os detalhes de um grupo é uma mera questão de usar a > >>função SUBSTRING (qualquer que seja seu nome/variação no banco usado). > >> > >>Cordialmente, > >> > >>Demian Lessa > >>Salvador - Brasil > > > > > > > > -- <<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>> Para ver as mensagens antigas, acesse: http://br.groups.yahoo.com/group/delphi-br/messages Para falar com o moderador, envie um e-mail para: [EMAIL PROTECTED] ou [EMAIL PROTECTED] Links do Yahoo! Grupos <*> Para visitar o site do seu grupo na web, acesse: http://br.groups.yahoo.com/group/delphi-br/ <*> Para sair deste grupo, envie um e-mail para: [EMAIL PROTECTED] <*> O uso que você faz do Yahoo! Grupos está sujeito aos: http://br.yahoo.com/info/utos.html