DBIX :: OO :: Tree

DBIX :: OO :: Tree è un modulo Perl per manipolare i dati gerarchici utilizzando il modello "set di set nidificato".
Scarica ora

DBIX :: OO :: Tree Classifica e riepilogo

Annuncio pubblicitario

  • Rating:
  • Licenza:
  • Perl Artistic License
  • Prezzo:
  • FREE
  • Nome editore:
  • Mihai Bazon
  • Sito web dell'editore:
  • http://search.cpan.org/~mishoo/DBIx-OO-v0.0.4/lib/DBIx/OO.pm

DBIX :: OO :: Tree Tag


DBIX :: OO :: Tree Descrizione

DBIX :: OO :: Tree è un modulo perl per manipolare i dati gerarchici utilizzando il modello "set nidificato". DBIX :: OO :: Tree è un modulo perl per manipolare i dati gerarchici utilizzando il modello "set nidificato" .synopsys Creare categorie di tabelle (ID Integer Unigned Auto_Increment Key Primario, Etichetta Varchar (255), - Queste colonne sono richieste da DBIX: : Oo :: Tree Genit Integer Unsigned, LFT Integer Unsigned Not Null, RGT Integer Unsigned Not Null, MVG Tinyint Default 0, Index (LFT), Indice (RGT), Indice (MVG), Indice (Genitore)); * * * Categoria pacchetto; usa la base 'dbix :: oo'; Usa DBIX :: OO :: Tree; __Package __-> Tabella ('categorie'); __Package __-> Colonne (P => , E => ); # Nota Non è necessario dichiarare LFT, RGT, MVG o Genitore. Noi # Dichiariamo il genitore semplicemente perché potrebbe essere utile, ma # DBIX :: OO: l'albero funziona con SQL di basso livello, quindi non è necessario che l'oggetto DBIX :: OO abbia questi campi. # Il codice qui sotto crea la struttura presentata in My $ Electronics = Categoria-> Tree_append ({Etichetta => 'Electronics'}); My $ TV = $ Electronics-> Tree_append ({Etichetta => "Televisori"}); My $ Tube = $ TVS-> Tree_append ({Etichetta => 'Tube'}); My $ PLASMA = $ TVS-> Tree_append ({Etichetta => 'plasma'}); My $ LCD = $ PLASMA-> TREST_INSERT_BOREPTO ({Etichetta => 'LCD'}); My $ portatile = $ TVS-> tree_insert_after ({etichetta => 'Elettronica portatile'}); My $ MP3 = $ portatile-> Tree_append ({etichetta => "i lettori MP3"}); My $ flash = $ mp3-> tree_append ({etichetta => 'flash'}); My $ CDS = $ portatile-> Tree_append ({etichetta => 'Lettori CD'}); My $ Radios = Categoria-> Tree_append ($ portatile-> ID, {Etichetta => 'Radios 2 way'}); # recupera e visualizza un sottostruttore My $ Data = $ Electronics-> tree_get_subtree ({fields => }); My $ Livelli = Categoria-> Tree_Compute_levels ($ dati); Foreach My $ i (@ $ Data) {stampa '' x $ livelli -> {$ i -> {id}}, $ i -> {etichetta}, "n"; } ## o, creare DBIX :: Oggetti OO dai dati restituiti: My $ array = categoria-> init_from_data ($ dati); Stampa Join ("n", (mappa {'' x $ livelli -> {$ _-> ID}. $ _-> Etichetta}} ARRAY)); # Visualizzazione del percorso Info My $ Data = $ flash-> tree_get_path; Stampa join ("n", (mappa {$ _-> {etichetta}} @ $ dati)); # muovi nodi intorno a $ mp3-> treeperparent ($ lcd-> id); $ TVS-> Tree_reparent ($ portatile-> ID); $ cds-> tree_reparent (undef); $ plasma-> tree_move_burafore ($ tube-> id); $ portatile-> tree_move_burafore ($ Electronics-> ID); # Elimina nodi $ LCD-> Tree_Delete; Questo modulo è un complemento per DBIX :: OO per facilitare la memorizzazione di alberi nel database utilizzando il "modello set nidificato", presentato in . La sua ambizione principale deve essere estremamente veloce al recupero dei dati (sacrificando per questo la performance di update-s, insert-s o eliminazione-S). Attualmente questo modulo richiede di avere queste colonne nella tabella: - ID: chiave primaria (numero intero) - Capogruppo: intero, riferimenti il nodo principale (NULL per i nodi root) - LFT, RGT: memorizzare la posizione del nodo - MVG: solo usato Quando si spostano i nodi "genitore" e "mvg" non sono esenzialmente richiesti dal modello di set nidificato come presentato in , ma sono necessari per questo modulo da lavorare. In particolare, "MVG" è richiesto solo da funzioni che muovono i nodi, come tree_reparent (). Se non vuoi spostare i nodi intorno a te può omettere "MvG". Le funzioniRetrievali devono essere molto veloci (un SQL eseguito). Per promuovere ulteriormente la velocità, non restituiscono DBIX :: Oggetti Blessivi OO, ma invece una serie di hash. È facile creare DBIX :: Oggetti OO da questi da questi, se necessario, chiamando dbix :: oo-> init_from_data () (vedere dbix :: oo per ulteriori informazioni) .Insert / Elimina / sposta funzioni, tuttavia, è necessario garantire il Integrità dell'albero. Ecco cosa succede attualmente: - tree_append, tree_insert_brefore, tree_insert_after - questi esegui uno selezionato e due aggiornamenti (che potenzialmente potrebbero influenzare un sacco di righe). - Tree_Delete: esegui uno selezionato, un eliminazione e due aggiornamenti. - Tree_reparent - Esegue 2 Select-S e 7 Update-S. Lo so, questo sembra orribile - se hai idee migliori mi piacerebbe sentirli. Requisiti: · Perl.


DBIX :: OO :: Tree Software correlato