Hallo,
vielen Dank nochmal für die Hilfe.
Also das ganze soll ja für so ne Art "CMS" sein (letztendlich ist es aber eine Artikel-Sammlung mit paar vielen Artikeln, die halt unterschiedlich verschachtelt sind).
Jetzt bin ich mir noch nicht ganz einig darüber, wie ich das ganze am besten Organisiere.
Bsp.:
left | right | title | escaped_title | content |
---|---|---|---|---|
2 | 3 | Der Zeitgeist | " | |
4 | 13 | Menschen | " | |
5 | 6 | Solche | " | |
7 | 12 | ... und Solche | " | |
8 | 9 | mit viel Geld | " | |
10 | 11 | an der Armutsgrenze | " |
(ich denke jeder weiß was in escaped\_title
und content
zu erwarten ist)
So daraus soll nun erstens eine sinnvolle Navigation entstehen und die Seite soll ausgelesen werden mit Hilfe des escaped\_title
.
Nun die Fragen:
-
Würdet ihr, die übergebenen Adressen zum Artikel (aneinanderreihung der jeweiligen
escaped\_title
) jedes mal prüfen oder einfach den letztenescaped\_title
aus der Tabelle abrufen?
z.B. http://foo.bar.org/index.php?ebene1=Menschen&ebene2=Solche
Jezt würde es ja langen, wenn ich einfach ebene2 aus der Datenbank hole und gut ist, oder würdet ihr jedesmal überprüfen, ob der "Pfad" bis in dem Fall ebene2 existiert? -
Wie würdet ihr die Navigation "erstellen"?
Also sie sollte so aussehen, dass sie die Kategorien (im Beispiel: "Der Zeitgeist" und "Menschen" immer anzeigt und an der Stelle an der man sich gerade befindet den Baum so ausklappt, dass die Schwesterelemente des aktuellen Artikels und gegebenenfalls dessen Kindelemente angezeigt werden, sprich im Beispiel "... und Solche":
Der Zeitgeist
Menschen
Solche
... und Solche
mit viel Geld
an der Armutsgrenze
Würdet ihr dafür den kompletten Baum mit Ebene abfragen und schonmal beim Mysql-Statement alle Ebenen "abschneiden", die eh nicht angezeigt würden, in dem Beispiel eben alles > Ebene 4 (dafür würde aber das erste Statement um einiges komplexer, da man, um die aktuelle Ebene auszulesen, ja auch wieder einen SelfJoin machen müsste).
Oder würdet ihr einfach den kompletten Baum auslesen
SELECT n.title, COUNT(*) AS ebene
FROM navi AS n, navi AS p
WHERE n.left
BETWEEN p.left
AND p.right
GROUP BY n.left
ORDER BY n.left
Und diesen dann mit (in dem Fall) php weiter druchgehen? Wenn ja wie würde man das am Geschicktesten anstellen?
Gruß