ich habe mir das tutorial "Status Quo" solange reingezogen, bis ich es endlich kapiert habe.
hier gehts zum tutorial
im prinzip sieht die tabelle für die ordnerstruktur in etwa so aus:
PHP:
CREATE TABLE baumtab (
baum_id int(10) unsigned NOT NULL auto_increment,
root_id int(10) unsigned NOT NULL default '0',
baum varchar(64) default NULL,
beschreibung varchar(250) NOT NULL default '',
lft int(10) unsigned NOT NULL default '0',
rgt int(10) unsigned NOT NULL default '0',
PRIMARY KEY (baum_id),
KEY root_id (root_id)
) TYPE=MyISAM;
Erklärung:
baum_id ist eine eindeutige ID eines jeden Ordners bzw. Subordners und man kann darüber einen einzelnen Ordner ansprechen.
root_id ist eine Art Zugehörigkeit zu der Wurzel eines jeweiligen Baumes und wird neuen Wurzeln fortlaufend erteilt. Am besten kann diese ID anhand eines Baumstrukturforums erklären.
Bsp.:
Es existieren 2 Threads:
1, <-- root_id = 1; baum_id = 1
2 <-- root_id = 2; baum_id = 2
zu diesen Threads existieren jeweils 2 Antworten:
1_1, 1_2, <-- root_id = 1; baum_id = 3
2_1, 2_2 <-- root_id = 2; baum_id = 4
zu diesen Antworten existiert jeweils eine Antwort:
1_1_1, 1_2_1 <-- root_id = 1; baum_id = 5
2_1_1, 2_2_1 <-- root_id = 2; baum_id = 6
Bis hierhin ist alles noch ganz einfach und auch nachvollziehbar. Die Schwierigkeit kommt erst bei lft und rgt.
Folgende Grafik erläutert die felder lft und rgt sehr gut:
Für uns sind lediglich die beiden Ziffern im unteren Bereich eines jeden Kästechens interessant, wobei dieses Bild nur einen einzigen mit sehr vielen Verschachtelungen Forenthread abbildet.
Ich kann es den Sachverhalt schlecht in Worte fassen, aber ich denke nach einer ausführlichen Betrachtung versteht man, was die beiden Ziffern bewirken. Die linke ist steht jeweils für lft und die rechte für rgt.
Du mußt dir die Queries auch nicht aus den Fingern saugen - das haben andere schon erledigt, so das du einfach darauf zurückgreifen kannst:
http://ffm.junetz.de/members/reeg/DSP/node10.html#SECTION04344000000000000000
cu bloddy