![]() |
![]() |
|
![]() |
![]() |
|
Programmierung Rat & Tat für Programmierer |
![]() |
|
Themen-Optionen | Ansicht |
![]() |
#1 |
Alter Sack
![]() Registriert seit: 19.09.1999
Ort: An der schönen alten Donau
Alter: 53
Beiträge: 1.579
|
![]() Ich schreibe gerade an einem Linkverzeichnis in php mit einer mySQL DB im Hintergrund.
Die Links sind in Kategorien eingeteilt, diese Kategorien können Subkategorien enhalten, die wiederum Links und weitere Subsubkategorien enthalten können usw. Theoretisch also unendlich tief ![]() Ich will beim browsen durch die Kategorien angezeigt bekommen:
Das Problem ist: die mySQL-Queries, um die Kategorien unendlich tief zu durchforsten (um eben die jeweilige Kategorie-ID herauszufinden, und dann nachzuschauen "welche Kategorie hat diese ID als ElternID"), werde ich wohl kaum vermeiden können. Sprich: für 100 Kategorien inkl. der Unterkategorien brauche ich eben 100 Queries. Was mich aber anzipft: jedesmal, wenn ich in einer Kategorie drin bin, setze ich wieder 3 Queries (Wieviele Links? Wieviele neue Links? Wieviele Updates?). Kann man das einfacher machen? Ich hoffe, ich habe das verständlich erklärt... ![]()
____________________________________
Viele Grüße Alex (SUV-Fahrer aus Leidenschaft) |
![]() |
![]() |
![]() |
#2 |
Inventar
![]() Registriert seit: 04.11.2001
Alter: 45
Beiträge: 2.150
|
![]() Ein klarer Fall für PEAR:
![]() ![]() http://pear.php.net/package/DB_NestedSet http://ffm.junetz.de/members/reeg/DS...00000000000000 ~
____________________________________
LOL - Mein erstes Post im Programmier Forum MACINTOSH - Most Applications Crash, If Not The Operating System Hangs |
![]() |
![]() |
![]() |
#3 |
Alter Sack
![]() Registriert seit: 19.09.1999
Ort: An der schönen alten Donau
Alter: 53
Beiträge: 1.579
|
![]() Hm...speziell der zweite Link ist ziemlich interessant.
Ich habe das bis jetzt so gelöst: Alle Kategorien bekommen eine eigene, eindeutige ID und eine Eltern ID (die ID jener Kategorie, deren Tochter sie sind). Die Kategorien in der obersten Ebene bekommen als Eltern ID "0". Ich habe somit ein hierachisches System aufgebaut, wo ich in der obersten Ebene alle Kategorien anzeige, die als Eltern ID "0" haben, und in der nächsttieferen Ebene alle Kategorien, die Tochter dieser Kategorie oberster Ebene ist. Tiefer werden dann die Töchter ebendieser Tochter angezeigt usw. War das falsch? ![]()
____________________________________
Viele Grüße Alex (SUV-Fahrer aus Leidenschaft) |
![]() |
![]() |
![]() |
#4 |
Alter Sack
![]() Registriert seit: 19.09.1999
Ort: An der schönen alten Donau
Alter: 53
Beiträge: 1.579
|
![]() Hier noch ein Dump der Kategorientabelle
CREATE TABLE category ( category_id smallint(5) NOT NULL auto_increment, parent_id smallint(5) NOT NULL default '0', name varchar(100) NOT NULL default '', description text NOT NULL, allow_links char(3) NOT NULL default '', PRIMARY KEY (category_id) ) TYPE=MyISAM;
____________________________________
Viele Grüße Alex (SUV-Fahrer aus Leidenschaft) |
![]() |
![]() |
![]() |
#5 |
Inventar
![]() Registriert seit: 04.11.2001
Alter: 45
Beiträge: 2.150
|
![]() Ja, das klassische Parent-Child System, artet in ein rekursives Desaster aus, wenn die Tiefe der Ebenen zunimmt.
![]() ~
____________________________________
LOL - Mein erstes Post im Programmier Forum MACINTOSH - Most Applications Crash, If Not The Operating System Hangs |
![]() |
![]() |
![]() |
#6 |
Alter Sack
![]() Registriert seit: 19.09.1999
Ort: An der schönen alten Donau
Alter: 53
Beiträge: 1.579
|
![]() Nur, damit ichs im Klartext lese: Das heisst, ich soll das komplette Schema umstellen?
![]() Ich meine, der Jammer ist ja eben der: zuviele Ebenen sind ein Wahnsinn an Queries...ich schick Dir eine schnelle pm mit dem Link...
____________________________________
Viele Grüße Alex (SUV-Fahrer aus Leidenschaft) |
![]() |
![]() |
![]() |
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | |
|
|