Brainstorming: Breadcrumbs

WhiZZler

Chancentod²
ID: 85586
L
6 Mai 2006
588
32
begrüße!

für ein größeres projekt will ich ein breadcrumb navigation integrieren.. eine ganz normale breadcrumbnavigation, die den aktuellen ort angibt.. also wie hier im forum: klamm-Forum > Virtual World > Programmierung

ich überlege aber noch, wie ich das ganze am besten umsetzen kann.. meine erste idee war es, eine datenbank mit einem nested set zu erstellen.. die einträge könnte man automatisch anhand der verzeichnisstruktur erstellen.. danach muss die anordnung natürlich bearbeitbar sein und man muss attribute ändern können..

zum referenzieren der einzelnen dateien hatte ich daran gedacht, den dateinamen zu verwenden.. also dass anhand des dateinamens der pfad aus der breadcrumb tabelle ausgelesen wird.. hierbei ist das problem natürlich, dass es bei änderungen der dateinamen zu problemen kommt.. eine andere möglichkeit wäre es, in jeder datei am anfang einer variable eine seiten id oder ähnliches zuzuweisen und anhand dieser anschließend den pfad aus der datenbank zu lesen.. dies ist allerdings recht unflexibel, wie ich finde..

die tabelle würde dann folgendermaßen aussehen:

headline | filename | path | lft | rgt | crumb_id

auf der anderen seite gibt es natürlich noch die etwas unschöne möglichkeit in jeder einzelnen datei den pfad in einem array abzuspeichern und anhand dieses arrays dann die breadcrumbs anzuzeigen.. dies ist von allen natürlich die unflexibelste möglichkeit.. aber auf der anderen seite kann man somit einen query mit einem join umgehen, der auf jeder seite ausgeführt werden würde.. wie viel das bringt, bzw ob ein solcher, nicht besonders komplexer query, wirklich einen unterschied macht kann ich nicht nicht beurteilen, da mir dazu die erfahrung mit großen projekten fehlt..

wie würdet ihr die sache angehen? andere ansätze würden mich auch interessieren!

mfg
whizzler
 
Ich hatte sowas vor einiger Zeit auch mal benötigt und bin über google auf eine interessante Seite gestoßen, welche ich dir nicht vorenthalten möchte. ;)

Geht zwar auf Seite 1 los, aber auf Seite 2 kommt der eigentlich interessante Teil, weshalb ich den direkt mal verlinke:
https://articles.sitepoint.com/article/hierarchical-data-database/2

Ist im Prinzip wie deine Möglichkeit welche ich persönlich auch gut finde.
 
da wird ja nur das prinzip von nested sets beschrieben.. die umsetzung davon ist ja kein problem.. mit geht es eher um den ansatz, wie man die breadcrumbs für die einzelnen seiten und unterseiten am effizientesten abspeichert und auch referenziert.. hat da niemand ne idee dazu? (meine ansätze stehen ja im ersten post)
 
Mann müsste erstmal wissen wie Du programmierst. Nutzt Du das ZF das wird der Index Deiner DB sicher auf Controller/Action liegen.

Programmierst Du eher wie das beim "FWX o. Klamm" der Fall ist z.B. Media?cat=User Dann wird dein Index auch die Dateiname/Cat liegen oder programmierst Du alles in eine separate Datei.

Wenn Du aber davon ausgehst das sich Deine Dateinamen ändern könnten, dann gibt es auch mehere Möglichkeiten z.B. kann man in jeder Datei einen eindeutigen Key setzen, diese Möglichkeit kannst Du immer anwenden und bist somit auf der sicheren Seite.

Ich denke das ist immer Geschmacksache, wie kompliziert/einfach man es sich machen möchte und für welchen Fall man abgesichert sein will.