Dbix :: arbol :: anillo

implementa un "conjunto anidado", padre / árbol infantil
Descargar ahora

Dbix :: arbol :: anillo Clasificación y resumen

Anuncio publicitario

  • Rating:
  • Licencia:
  • Perl Artistic License
  • Precio:
  • FREE
  • Nombre del editor:
  • Dan Collis Puro
  • Sitio web del editor:
  • http://search.cpan.org/~djcp/

Dbix :: arbol :: anillo Etiquetas


Dbix :: arbol :: anillo Descripción

Implementa un árbol de padres / niños "establecido anidado" DBIX :: Árbol :: Nestesset es un módulo PERL que implementa un "conjunto anidado" Padre / Niño Tree.Synopsisexample: #! / Usr / bin / perl #this está en "scripts / tree_example.pl" de dbix :: árbol: : Distribución Nestedset Use estricto; usar advertencias; Use DBIX :: Árbol :: Nestess; Usa DBI; #Crear la conexión. Usaremos SQLite por ahora. #my $ dbh = dbi-> connect ('dbi: mysql: prueba', 'usuario', 'Pass') o Die ($ DBI :: ERRSTR); My $ dbh = dbi-> connect ('dbi: sqlite2: prueba') o die ($ dbi :: errstr); My $ db_type = 'sqlite'; #my $ db_type = 'mysql'; My $ TREA = DBIX :: Árbol :: Nesset-> Nuevo (DBH => $ DBH, DB_TYPE => $ db_type); # Veamos cómo se creará la tabla para este controlador Imprimir "Crear la siguiente declaración de la tabla para $ db_type: "; imprimir $ árbol-> get_default_create_table_statement ()". "; # Vamos a crearlo. $ Árbol-> create_default_table (); #create el nodo raíz. My $ root_id = $ árbol-> add_child_to_right (nombre => 'comida'); #Segundo Nivel My $ vegetal_id = $ árbol-> add_child_to_right (id => $ root_id, nombre => 'vegetal'); My $ animal_id = $ árbol-> add_child_to_right (id => $ root_id, nombre => 'animal'); mi $ mineral_id = $ árbol-> add_child_to_right ( ID => $ root_id, nombre => '' mineral '); #ththirt nivel, bajo "vegetal" foreach (' froot ',' frijoles ',' leguminosas ',' tubérgicos ') {$ árbol-> add_child_to_right (id => $ vegetable_id, nombre => $ _);} #ththirt nivel, bajo "animal" foreach ('carne', 'pollo', 'mariscos') {$ árbol-> add_child_to_right (id => $ animal_id, nombre => $ animal_id, nombre => $ _);} #Hey! ¡Olvidamos la carne de cerdo! Ya que es la otra carne blanca, #it debería ser la primera entre la multitud de "animal". $ Árbol-> add_child_to_left (id => $ animal_id, nombre => 'cerdo'); #Oops. Misspelling. $ Árbol-> edit_node (id => $ árbol-> get_id_by_key (key_name => 'nombre', key_value => 'froot'), nombre => 'fruta'); #get los nodos infantiles de la 2do nivel nodo "animal" My $ niños = $ árbol-> get_self_and_children_flat (id => $ anim al_id); #Rab el primer nodo, que es "animal" y el #Parente de este subárbol. My $ Padres = Shift @ $ hijos; Imprimir 'Nodo principal:'. $ Padres -> {nombre}. " "; # #Lo a través de los niños y haz algo. Foreach My $ Child (@ $ Children) {Imprimir 'Identificación del niño:'. $ Hijo -> {id} '. '. $ hijo -> {nombre} ". ";} #Mineral? Deshazte de eso. $ Árbol-> eliminar_self_and_children (id => $ mineral_id); #Print el informe rudimentario integrado en el módulo. Imprimir" El árbol completo: "; Imprimir $ árbol-> Create_Report (); Este módulo implementa un árbol de padres / niños" anidado ", y está enfocado (al menos en mi mente) para ofrecer métodos que faciliten las aplicaciones web en desarrollo. En general, debe ser útil, Aunque, la sección "Ver también" para los recursos que explican las ventajas y las características de un árbol establecido anidado. Este módulo le brinda niveles arbitrarios de nodos, la capacidad de colocar metadatos asociados con un nodo a través de un método simple argumentos y almacenamiento a través de DBI ..There los conductores implementados para MySQL y SQLite versión 2. Por alguna razón, este módulo SEGFAULTS en mis cajas de Debian ejecutan SQLite 3. Use SQLite 2, a menos que pueda averiguar lo que está pasando. Debe ser trivial para escribir uno para su RDBMS , consulte DBIX :: Árbol :: Nestesset :: MySQL para un controlador de ejemplo. Un árbol establecido anidado es "caro" en las actualizaciones, ya que tiene que editar un poco del árbol en las inserciones, elimina o el movimiento de nodos. A la inversa , es "más barato" en solo consultas del árbol porque E Casi todas las acciones (para obtener niños, conseguir a los padres, conseguir a los padres, etc.) se pueden hacer con una declaración SQL. Si está desarrollando aplicaciones que requieren muchas lecturas y pocas actualizaciones a un árbol (como prácticamente todas las aplicaciones web que he jamás construido) un conjunto anidado debe ofrecer ventajas significativas de rendimiento sobre las consultas recursivas requeridas por el modelo típico de la lista de adyuaduras. Al usar. Diga que rápidamente tres veces. Modo Create_default_table () para crear su tabla establecida anidada en su RDBMS. Requisitos: · Perl


Dbix :: arbol :: anillo Software relacionado