DBIX :: Árvore :: Nestedset

implementa uma árvore pai / criança "Nested Set"
Baixe Agora

DBIX :: Árvore :: Nestedset Classificação e resumo

Propaganda

  • Rating:
  • Licença:
  • Perl Artistic License
  • Preço:
  • FREE
  • Nome do editor:
  • Dan Collis Puro
  • Site do editor:
  • http://search.cpan.org/~djcp/

DBIX :: Árvore :: Nestedset Tag


DBIX :: Árvore :: Nestedset Descrição

Implementa uma "Nested Set" árvore pai / filho DBIx :: Árvore :: NestedSet é um módulo Perl que implementa um "Nested Set" pai / filho tree.SYNOPSISExample: #! / Usr / bin / perl #Esta está em "scripts / tree_example.pl" de DBIx :: Tree: : uso distribuição NestedSet rigorosa; use avisos; uso DBIx :: Árvore :: NestedSet; Use o DBI; #Criar a conexão. Vamos usar SQLite para agora. #my $ dbh = DBI-> connect ( 'DBI: mysql: test', 'user', 'pass') or die ($ DBI :: errstr); my $ dbh = DBI-> connect ( 'DBI: SQLite2: test') or die ($ DBI :: errstr); my $ db_type = 'SQLite'; #my $ db_type = 'MySQL'; my $ árvore = DBIx :: Árvore :: NestedSet-> new (DAP => $ dbh, db_type => $ db_type); # Vamos ver como a tabela será criada para este driver de impressão padrão" CREATE TABLE por US $ db_type: "; Imprimir $ por árvores> get_default_create_table_statement ()." "; # Vamos criar-lo $ por árvores> create_default_table ();.. #Criar o nó raiz my $ root_id = $ por árvores> add_child_to_right (name => 'Food'); nível #Segundo my $ vegetable_id = $ por árvores> add_child_to_right (id => $ root_id, name => 'vegetal'); my $ animal_id = $ por árvores> add_child_to_right (id => $ root_id, name => 'animal'); my $ mineral_id = $ por árvores> add_child_to_right ( id => $ root_id, name => 'Mineral'); #Terceiro Nível, sob foreach "vegetal" ( 'Froot', 'Feijão', 'Legumes', 'Tubérculos') {$ por árvores> add_child_to_right (id => $ vegetable_id, name => $ _);} #Terceiro Nível, em "animal" foreach ( 'Beef', 'Chicken', 'Seafood') {$ por árvores> add_child_to_right (id => $ animal_id, name => $ _!);} #Hey Esquecemos de porco Uma vez que é a outra carne branca, #it deve ser o primeiro entre a multidão "animal" $ por árvores> add_child_to_left (id => $ animal_id, name => 'porco')!.; .. #Oops Misspelling $ por árvores> edit_node (id => $ por árvores> get_id_by_key (key_name => 'nome', key_value => 'Froot'), name => 'Fruit'); #Get os nós filhos do 2º nível "animal" nó meus $ filhos = $ por árvores> get_self_and_children_flat (id => $ anim al_id); #Grab o primeiro nó, que é "Animal" eo #parent desta subárvore. my $ parent = mudança @ $ filhos; imprimir 'Nó pai:' $ pai -> {name} ".. "; #Loop através dos filhos e fazer algo foreach my $ criança (@ $ filhos) {print 'Child ID:' $ criança -> {id} '... .' $ Criança -> {name} ". ";}? #Mineral Se livrar dele por árvores $> delete_self_and_children (id => $ mineral_id);.. #Print o relatório rudimentar embutido no módulo de impressão" The Complete Tree: "; Imprimir $ por árvores> create_report (); Este módulo implementa a 'Nested Set' árvore pai / filho, e é focado (pelo menos na minha mente) para métodos de oferta que fazem em desenvolvimento de aplicações web mais fácil deve ser geralmente útil, though.See o "VEJA TAMBÉM" para obter recursos que explicam as vantagens e características de uma árvore conjunto aninhado. Este módulo dá-lhe níveis arbitrários de nós, a capacidade de colocar em metadados associados a um nó por meio de argumentos método simples e de armazenamento via DBI .Não Atualmente motoristas implementadas para MySQL e SQLite versão 2. por alguma razão este módulo segfaults sobre minhas caixas Debian rodando SQLite 3. Use SQLite 2, a menos que você pode descobrir o que está acontecendo on.It deve ser trivial para escrever um para o seu RDBMS , consulte DBIx :: árvore :: NestedSet :: MySQL para uma árvore de conjunto aninhado exemplo driver.A é "caro" em atualizações porque você tem que editar um pouco da árvore em inserções, exclusões, ou o movimento de nós. por outro lado , é "mais barato" em consultas apenas dos becaus árvores e praticamente todas as ações (recebendo as crianças, ficando os pais, recebendo irmãos, etc) pode ser feito com um SQL statement.If você está desenvolvendo aplicativos que exigem muitas leituras e algumas atualizações a uma árvore (como praticamente todos os web app Eu tenho já construído) um conjunto aninhado deve oferecer vantagens significativas de desempenho sobre as consultas recursivas exigidos pela lista de adjacência típico model.Whew. Dizer que jejum de três times.Use o método create_default_table () para criar sua tabela Nested Set em seus RDBMS. Requisitos: · Perl.


DBIX :: Árvore :: Nestedset Software Relacionado

SNMP :: Info.

Uma interface Perl orientada a objetos para dispositivos de rede e MIBs através do SNMP ...

186

Download