DBIX :: Boom :: nestedset

implementeert een "geneste set" ouder / kinderboom
Download nu

DBIX :: Boom :: nestedset Rangschikking & Samenvatting

Advertentie

  • Rating:
  • Vergunning:
  • Perl Artistic License
  • Prijs:
  • FREE
  • Naam uitgever:
  • Dan Collis Puro
  • Uitgever website:
  • http://search.cpan.org/~djcp/

DBIX :: Boom :: nestedset Tags


DBIX :: Boom :: nestedset Beschrijving

Implementeert een "nested" ouder / kind boom DBIx :: Tree :: NestedSet is een Perl module die implementeert een "nested" ouder / kind tree.SYNOPSISExample: #! / Usr / bin / perl #Dit is in "scripts / tree_example.pl" van DBIx :: Tree: : NestedSet distributie use strict; gebruik waarschuwingen; gebruik DBIx :: Tree :: NestedSet; gebruik dbi; Create verbinding. We zullen SQLite gebruiken voor nu. #Mijn $ dbh = DBI-> connect ( 'DBI: MySQL:-test', 'gebruiker', 'voldoende') of sterven ($ DBI :: errstr); mijn $ dbh = DBI-> connect ( 'DBI: SQLite2: test') of sterven ($ DBI :: errstr); mijn $ db_type = 'SQLite'; #Mijn $ db_type = 'MySQL'; mijn $ boom = DBIx :: Tree :: NestedSet-> new (DBH => $ dbh, db_type => $ db_type); # Laten we kijken hoe de tafel zal worden gemaakt voor deze driver print "Standaard Tabel maken verklaring voor $ db_type: "; Print $ boom-> get_default_create_table_statement ()." "; # Laten we maken er $ boom-> create_default_table ();.. #Create het hoofdknooppunt mijn $ root_id = $ boom-> add_child_to_right (name => 'Food'); #Second niveau mijn $ vegetable_id = $ boom-> add_child_to_right (id => $ root_id, naam => 'Vegetable'); mijn $ animal_id = $ boom-> add_child_to_right (id => $ root_id, name => 'Animal'); mijn $ mineral_id = $ boom-> add_child_to_right ( id => $ root_id, naam => 'Mineral'); #Third Level, onder "plantaardige" foreach ( 'Froot', 'Beans', 'peulvruchten', 'Knollen') {$ boom-> add_child_to_right (id => $ vegetable_id, naam => $ _);} #Third ', onder "Animal" foreach ( 'Beef', 'Chicken', 'Seafood') {$ boom-> add_child_to_right (id => $ animal_id, name => $ _);} #Hey We vergaten varkensvlees Omdat het de andere wit vlees, moet #it eerst onder de "Animal" menigte $ boom-> add_child_to_left (id => $ animal_id, naam => 'Pork'!).; .. #Oops Misspelling $ boom-> edit_node (id => $ boom-> get_id_by_key (KEY_NAME => 'naam', key_value => 'Froot'), name => 'Fruit'); #get het kind knooppunten van de 2e niveau "Animal" knooppunt mijn $ kinderen = $ boom-> get_self_and_children_flat (id => $ Anim al_id); #Grab het eerste knooppunt, dat "Dier" en #parent van de substructuur. mijn $ ouder = shift @ $ kinderen; afdrukken 'Parent Node:' $ ouder -> {naam}. ". "; #Loop door de kinderen en doe iets foreach my $ kind (@ $ kinderen) {print 'Child ID:' $ kind -> {id} '... .' $ Kind -> {name} ". ";}? #Mineral zich te ontdoen van $ boom-> delete_self_and_children (id => $ mineral_id);.. #Print de rudimentaire rapport ingebouwd in de module te drukken" The Complete Tree: "; Print $ boom-> create_report (); Deze module implementeert een 'geneste Set' ouder / kind boom, en is gericht (althans in mijn ogen) in de richting van het aanbieden methoden die ervoor zorgen dat het ontwikkelen van webapplicaties gemakkelijker Het moet in het algemeen nuttig zijn, though.See de "ZIE OOK" voor de middelen die de voordelen uit te leggen en is voorzien van een geneste set boom. Deze module geeft u willekeurige niveaus van nodes, het vermogen in de metadata gekoppeld aan een knooppunt via eenvoudige methode argumenten en opslag via DBI te zetten .Er zijn momenteel drivers geïmplementeerd voor MySQL en SQLite versie 2. om een of andere reden deze module segfaults op mijn debian boxes loopt SQLite 3. Gebruik SQLite 2, tenzij je kunt achterhalen wat er aan de hand on.It zou triviaal zijn om een voor uw RDBMS schrijven zie DBIx :: Tree :: NestedSet :: MySQL voor een voorbeeld driver.A geneste set boom is "dure" op updates omdat je moet bewerken nogal wat van de boom op inserts, schrapt, of de beweging van knooppunten. Omgekeerd , is het "goedkopere" op enkel queries van de boom becaus e bijna elke actie (het krijgen van kinderen, het krijgen van ouders, krijgen broers en zussen, etc) kan worden gedaan met een SQL statement.If je het ontwikkelen van apps die vereisen veel leest en enkele updates aan een boom (zoals vrijwel elke web app die ik heb ooit gebouwd) een geneste set zou aanzienlijke prestatievoordelen bieden over de recursieve query vereist door de typische nabijheid lijst model.Whew. Zeg dat snel drie times.Use de create_default_table methode () om geneste Set tabel te maken in uw RDBMS. Vereisten: · Perl


DBIX :: Boom :: nestedset Gerelateerde software