Dbix :: oo :: arbol

DBIX :: OO :: Árbol es un módulo PERL para manipular los datos jerárquicos utilizando el modelo "Conjuntos anidados".
Descargar ahora

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

Anuncio publicitario

  • Rating:
  • Licencia:
  • Perl Artistic License
  • Precio:
  • FREE
  • Nombre del editor:
  • Mihai Bazon
  • Sitio web del editor:
  • http://search.cpan.org/~mishoo/DBIx-OO-v0.0.4/lib/DBIx/OO.pm

Dbix :: oo :: arbol Etiquetas


Dbix :: oo :: arbol Descripción

DBIX :: OO :: árbol es un módulo PERL para manipular los datos jerárquicos utilizando el modelo "Conjuntos anidados". DBIX :: OO :: Árbol es un módulo PERL para manipular los datos jerárquicos utilizando el modelo "Conjuntos anidados". HSYNOPSYS CREATE CATEGORÍAS DE TABLA DE TABLA (ID INTEGER NO SIGNEED AUTO_INCREMENT CLAVE PRINCIPAL, ETIQUETA VARCHAR (255), - DBIX: estas columnas son requeridas por DBIX: : OO :: Tree Padre entero sin firmar, Identificación del LFT sin firmar, no firmado, Identificación de RGT sin firmar, NULL, MVG Tinyint predeterminado 0, Índice (LFT), Índice (RGT), Índice (MVG), índice (padre)); * * * Categoría de paquete; Use la base 'DBIX :: OO'; Usa DBIX :: OO :: Árbol; __Paquete __-> Tabla ('Categorías'); __Paquetar __-> Columnas (P => , E => ); # Nota No es necesario declarar LFT, RGT, MVG o PADRE. Número de padres Simplemente porque podría ser útil, pero # dBix :: OO: OO: OO Funciona con SQL de bajo nivel, por lo tanto, no requiere que el objeto DBIX :: OO tenga estos campos. # El código a continuación crea la estructura presentada en My $ Electronics = Categoría-> Tree_Aply ({etiqueta => 'Electronics'}); MIS $ TVS = $ Electronics-> Tree_Append ({etiqueta => 'Televiss'}); My $ TUBE = $ TVS-> TREA_APLY ({etiqueta => 'tubo'}); MY $ PLASMA = $ TVS-> TREA_APLY ({LATEL => 'PLASMA'}); My $ LCD = $ PLASMA-> TREA_INSERT_BEFORE ({LATEL => 'LCD'}); My $ Portable = $ TVS-> TREE_INSERT_FER ({LATEL => 'Portable Electronics'}); MY $ MP3 = $ portable-> Tree_Append ({etiqueta => 'reproductores MP3'}); My $ Flash = $ mp3-> Tree_Append ({etiqueta => 'Flash'}); My $ CDS = $ Portable-> Tree_Append ({etiqueta => 'reproductores de CD'}); My $ RADIOS = Categoría-> Tree_Aply ($ portable-> ID, {Label => '2 Way Radios'}); # fetch y mostrar un subárbol Mis $ DATA = $ ELECTRONICS-> TREE_GET_SUBTREE ({Fields => }); MIS $ NIVELES = Categoría-> TREE_COMPUTE_LEVELLELS ($ DATOS); foreach mis niveles de $ i (@ $ DATA) {Imprimir '' x $ $ -> {$ i -> {id}}, $ i -> {etiqueta}, "n"; } ## O, cree DBIX :: OO Objetos de datos devueltos: My $ Array = Categoría-> init_from_data ($ datos); Únase a la impresión ("n", (map {'' x $ niveles -> {$ _-> id}. $ _-> etiqueta} @ $ matriz)); # mostrar información de ruta My $ DATA = $ FLOSH-> TREE_GET_GET_PATH; Únase a la impresión ("N", (Mapa {$ _-> {etiqueta}} @ $ DATA)); # Mover nodos alrededor de $ mp3-> TREE_REPARENT ($ LCD-> ID); $ TVS-> TREA_REPARENT ($ portable-> ID); $ cds-> TREA_REPARENT (UNDEF); $ Plasma-> TREE_MOVE_BEFORE ($ TUBE-> ID); $ portable-> TREA_MOVE_BEFORE ($ ELECTRONICS-> ID); # Eliminar nodos $ LCD-> TREE_DELETE; Este módulo es un complemento de DBIX :: OO para facilitar almacenar árboles en la base de datos utilizando el "Modelo de conjuntos anidados", presentado en . Su principal ambición es ser extremadamente rápida para recuperar datos (sacrificando para este desempeño de Update-S, Insertar-S o Eliminar). Actualmente, este módulo requiere que tenga estas columnas en la tabla: - ID: Tecla principal (entero): padre: entero, hace referencia al nodo padre (nulo para nodos de raíz) - LFT, RGT: almacene la posición del nodo - MVG: SOLAMENTE UTILIZADO Al mover los nodos "Padre" y "MVG", no se requieren esencialmente el modelo de conjuntos anidados como se presenta en , pero son necesarios para que este módulo funcione. En particular, "MVG" solo es requerido por las funciones que mueven nodos, como Tree_reparent (). Si no desea mover los nodos alrededor, puede omitir las funciones de "MVG". Se debe ser muy rápido (una SQL ejecutada). Para promover aún más la velocidad, no devuelven DBIX :: OO Beato Objetos, sino una matriz de hashes en su lugar. Es fácil crear DBIX :: OO Objetos de estos, si es necesario, llamando a DBIX :: OO-> init_from_data () (consulte dbix :: oo para más información). Sin embargo / eliminar / mover funciones, sin embargo, debe asegurar la integridad del árbol. Esto es lo que sucede actualmente: - Tree_Append, Tree_Insert_BETHE, TREA_INSERT_FER - Estos ejecutan una selección y dos actualizaciones (que potencialmente podrían afectar a muchas filas). - TREE_DELETE: EJECUTE UNA SELECT, UN BORRAR Y DOS UPDUCIDADES. - TREA_REPARENT - Ejecuta 2 Select-S y 7 Update-S. Lo sé, esto suena horrible, si tienes mejores ideas, me encantaría escucharlas. Requisitos: · Perl


Dbix :: oo :: arbol Software relacionado