DBIX :: OO :: Boom

DBIX :: OO :: Boom is een PERL-module om hiërarchische gegevens te manipuleren met behulp van het model "Genested Sets".
Download nu

DBIX :: OO :: Boom Rangschikking & Samenvatting

Advertentie

  • Rating:
  • Vergunning:
  • Perl Artistic License
  • Prijs:
  • FREE
  • Naam uitgever:
  • Mihai Bazon
  • Uitgever website:
  • http://search.cpan.org/~mishoo/DBIx-OO-v0.0.4/lib/DBIx/OO.pm

DBIX :: OO :: Boom Tags


DBIX :: OO :: Boom Beschrijving

DBIx :: OO :: Tree is een Perl module om hiërarchische gegevens met behulp van de "nested sets" model te manipuleren. DBIx :: OO :: Tree is een Perl module om hiërarchische gegevens te manipuleren met behulp van de "nested sets" model.SYNOPSYS CREATE TABLE categorieën (id INTEGER UNSIGNED AUTO_INCREMENT primaire sleutel label VARCHAR (255), - deze kolommen zijn vereist door DBIx: : OO :: Tree ouder INTEGER UNSIGNED, lft INTEGER UNSIGNED NOT NULL, rgt INTEGER UNSIGNED NOT NULL, mvg TINYINT STANDAARD 0, INDEX (lft), INDEX (RGT), INDEX (MVG), INDEX (ouder)); * * * Pakket Categorie; gebruik base 'DBIx :: OO'; gebruik DBIx :: OO :: Tree; __PACKAGE __-> table ( 'categorieën'); __PACKAGE __-> kolommen (P => , E => ); # Nota Het is niet nodig om lft, rgt, mvg of ouder verklaren. We # declare ouder simpelweg omdat het nuttig zou kunnen zijn, maar # DBIx :: OO: Boom werkt met low-level SQL daarom niet # vereisen dat de DBIx :: OO object heeft deze gebieden. # Onderstaande code creëert de structuur voorgesteld in mijn $ elektronica = Categorie-> tree_append ({label => 'electronics'}); mijn $ tvs = $ elektronica-> tree_append ({label => 'televisies'}); mijn $ tube = $ tvs-> tree_append ({label => 'tube'}); mijn $ plasma = $ tvs-> tree_append ({label => 'plasma'}); mijn $ lcd = $ plasma-> tree_insert_before ({label => 'lcd'}); mijn $ draagbare = $ tvs-> tree_insert_after ({label => 'draagbare elektronica'}); mijn $ mp3 = $ portable-> tree_append ({label => 'mp3-spelers'}); mijn $ flash = $ MP3-> tree_append ({label => 'flash'}); mijn $ cds = $ portable-> tree_append ({label => 'cd-spelers'}); mijn $ radio = Categorie-> tree_append ($ portable-> id, {label => '2-weg radio's'}); # Halen en weer te geven een subtree mijn $ data = $ elektronica-> tree_get_subtree ({fields => }); mijn $ levels = Categorie-> tree_compute_levels ($ data); foreach my $ i (@ $ data) {print '' x $ niveaus -> {$ i -> {id}}, $ i -> {label}, "n"; } ## of, maak DBIx :: OO objecten uit geretourneerde gegevens: my $ serie = Categorie-> init_from_data ($ data); afdrukt join ( "n", (kaart { '' x $ niveaus -> {$ _-> id} $ _-> label.} @ $ array)); # Beeldscherm pad info my $ data = $ Flash-> tree_get_path; afdrukt join ( "n", (kaart {$ _-> {label}} @ $ data)); # Beweging nodes ongeveer $ MP3-> tree_reparent ($ LCD-> id); $ Tvs-> tree_reparent ($ portable-> id); $ Cds-> tree_reparent (undef); $ Plasma> tree_move_before ($ buis-> id); $ Portable-> tree_move_before ($ elektronica-> id); # Delete knooppunten $ LCD-> tree_delete; Deze module is een aanvulling op DBIx :: OO op het opslaan van bomen in de database met behulp van de "geneste sets model", gepresenteerd in te vergemakkelijken. De belangrijkste ambitie is om zeer snel bij het ophalen van gegevens zijn (te offeren voor deze de prestaties van de UPDATE-s, INSERT-s of DELETE-s). Momenteel is deze module vereist om deze kolommen in de tabel hebben: - id: primaire sleutel (integer) - ouder: integer, verwijst naar de bovenliggende node (NULL voor root nodes) - lft, RGT: Bewaar de knooppuntpositie - MVG: alleen gebruikt bij verplaatsing nodes "ouder" en "MVG" niet esentially vereist door de geneste sets model zoals gepresenteerd in , maar zijn nodig voor deze module werken. Vooral "MVG" is alleen vereist functies knooppunten bewegen, zoals tree_reparent (). Als u niet wilt knooppunten om je heen te bewegen kunt weglaten "mvg" .Retrieval functies moeten zeer snel (een SQL uitgevoerd). Om verder te bevorderen snelheid, ze niet DBIx terugkeren :: OO gezegend objecten, maar een reeks van hashes plaats. Het is gemakkelijk om DBIx creëren :: OO objecten uit deze, indien nodig, door te bellen naar DBIx :: OO-> init_from_data () (zie DBIx :: OO voor meer informatie) .Gebruik / verwijderen / verplaatsen functies echter noodzaak om te zorgen voor de boom integriteit. Hier is wat momenteel gebeurt: - tree_append, tree_insert_before, tree_insert_after - deze uit te voeren een SELECT en twee UPDATE-s (die mogelijk van invloed kunnen zijn een zeer groot aantal rijen). - tree_delete: uitvoeren van een SELECT, een DELETE en twee UPDATE-s. - tree_reparent - 2 voert SELECT-s en 7 UPDATE-s. Ik weet het, dit klinkt verschrikkelijk - als u een beter idee zou ik graag horen. Vereisten: · Perl


DBIX :: OO :: Boom Gerelateerde software

Xtm :: pad

XTM :: PATH is een PERL-module met onderwerpkaartbeheer, XPath zoals ophalen en bouwfaciliteit. ...

148

Downloaden

libiriverdb

Libiriverdb is een bibliotheek voor IRIVER JUKEBOXES, met name de H300- en H100-serie-op harde schijf gebaseerde modellen. ...

133

Downloaden