Thread Idee für Package "Nested Sets"
(19 answers)
Opened by Hagen at 2010-03-03 14:14
Habe wahrscheinlich ähnliches wie meier19 (ebenfalls MySQL). Vor acht Jahren war das noch ein echtes Abenteuer! Vorsicht: Bin Dilettant!
Ich erzeuge zusätzlich Metadaten, die das Auslesen einfacher machen. Diese entstehen aus dem NestedSet, können also jederzeit neu berechnet werden. Mein nächster Schritt wird die Auslagerung des NestedSet Daten in eine eigene Tabelle, so dass die damit strukturierten Daten unabhängig werden. (Hab aber noch Bugs beim Verschieben der Einträge.) Würde das Modul auch als Beispiel hergeben. Code (perl): (dl
)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 # CREATE TABLE b_struct ( # l int(32) unsigned NOT NULL default '0', # r int(32) unsigned NOT NULL default '0', # id int(32) unsigned NOT NULL auto_increment, # es folgen die Metadaten: # num int(10) unsigned NOT NULL default '0', # laufende Nummer # nick varchar(120) NOT NULL default '', # Name des Item # level int(32) unsigned NOT NULL default '0',# Schachtelungstiefe # groupid int(32) unsigned NOT NULL default '0',# Übergeordnetes Item ## es folgen die verwalteten Daten, hier ausgelassen # PRIMARY KEY (id), # KEY nick (nick) # ) TYPE=MyISAM; #--------------------------------------------------------------------- # Funktionen # # sub move_up_by_id # sub move_down_by_id # sub _move_item_extract # sub _move_item_add # sub _move_item_insert # # sub item_insert # sub item_add # sub item_delete # sub extract_to_newstruct # sub get_path # sub get_inside_item # sub get_groups_inside_item # sub get_all_inside_item # sub get_same_group # sub _refresh_struct # sub _set_level() # #---------------------------------------------------------------------- |