Sinnvolle Datenbankstruktur für dynamische Navigation
Fabian Brundt
- datenbank
Hallo,
ich möchte eine datenbankgestütze Knowledgbase umsetzen, welche dynamisch erweiterbar und pflegbar sein soll.
Vorgaben: WAMP
Die Navigationspunkte sollen alle dynamisch aus der Datenbank ausgelesen werden und bis zu 4 Ebenen besitzen.
Beispiel:
zu jedem Unterpunkt soll es Inhalte geben, welche auch aus der DB ausgelesen werden.
Wie realisiere ich dieses Projekt bezüglich
a.) der Datenbankstruktur
b.) der Datenabfrage
c.) der Zuordnung der Navigationsüber und unterpunkte
d.) Zuordnung navigationspunkt -> Inhalt
Das ganze soll dann auch über eine Pflegemase pflegbar sein, d.H. neune Über und Unterpunkte anlegen und Inhalte definieren.
Vielen Dank für Euere Hilfe
Fabian
lege doch eine tabelle "menuepunkte" an. dort sind alle punkte drin, jeweils mit einer hirarchiestufe (1-4).
also:
menuepunktID(auto Inc.) menuepunkt stufe
1 design 1
2 screendesign 2
3 website 3
usw.
dann verknüpfst du in einer anderen tabble die menuepunktID mit der textID.
sorry aber die abfragen musst du selber schreiben.... :-)
tomm
Hallo,
ich möchte eine datenbankgestütze Knowledgbase umsetzen, welche dynamisch erweiterbar und pflegbar sein soll.
Vorgaben: WAMP
Die Navigationspunkte sollen alle dynamisch aus der Datenbank ausgelesen werden und bis zu 4 Ebenen besitzen.
Beispiel:
- Design
- Screendesign
- Website
- dynamisch
- statisch
- Cd -Rom
- Beamer
- Printdesign
- Zeitscrift
- Zeitung
- Plakat
- normal Größe
- größer A0
- Hand Out
- Werbeanzeigezu jedem Unterpunkt soll es Inhalte geben, welche auch aus der DB ausgelesen werden.
Wie realisiere ich dieses Projekt bezüglich
a.) der Datenbankstruktur
b.) der Datenabfrage
c.) der Zuordnung der Navigationsüber und unterpunkte
d.) Zuordnung navigationspunkt -> InhaltDas ganze soll dann auch über eine Pflegemase pflegbar sein, d.H. neune Über und Unterpunkte anlegen und Inhalte definieren.
Vielen Dank für Euere Hilfe
Fabian
lege doch eine tabelle "menuepunkte" an. dort sind alle punkte drin, jeweils mit einer hirarchiestufe (1-4).
dann weiss ich aber nicht, welcher unterpunkt einer ebene zu welchem überpunkt der ebene darüber gehört
Fabian
Hallo,
habe mir das theoretische Modell angeschaut. Das ist mir zu unvollkommen. Ich würde das so machen:
ID_Element Primärschlüssel
ID_Own im Prinzip der beim Anlegen erteilte Primärschlüssel beim Zuordnen als Kindelement in Sekundärschlüssel übertragen
ID_belongsTo ID des übergeordneten Elementes
Level Level der Suchtiefe
so kann jedes Element des Baumes Kindelement eines anderen auf bestimmtem Level sein. Man muss ggf. "nur" darauf achten, dass keine Rekursion entsteht, d.h. dass ein Element sich selbst als Eltern, Großeltern oder Urgroßeltern oder so hat. Das heißt auf geraden Weg der Levels zurück zu MinLevel darf es nicht als Elternelement vorkommen.
Level würde ich bei 0 beginnen für "ROOT" und hochzählen für jede untergeordnete Hierarchiestufe. Man könnte Level dann nachträglich auch negativ werden lassen, um "ROOTs" zu Familien zusammenzufassen.
Jedes Element des Level 2 darf Tochterelement jeden Elementes des Level 1 sein, nur nicht von sich selbst (ID_OWN) und auch auf den übergeordnetn Leveln bis MinLevel darf es nicht vorkommen. Das gilt, solange es noch keine Kinder hat, also NEU angelegt wird.
Im Falle von Stücklisten muss man leider auch alle Kinder und Kindeskinder auf Vorhandensein in einer höheren Hierarchiestufe untersuchen.
Liebe Grüße aus <http//www.braunschweig.de>
Tom
Hallo,
also ich tendiere eher zu mindestens 4 Tabellen...
für jeden Ebene eine->keine/wenig Redundanz
Tabelle1 z.B.
id punkt
1 design
2 Programmierung
Tabelle2 z.B.
id punkt vorgaenger
1 Screendesign 1
2 Printdesign 1
3 Serverseitig 2
u.s.w.
in der 4. tabelle können dann die einzelnen einträge und infos, die du unterbringen willst, gespeichert sein...
ein design für eine tabelle würde so aussehen...
id punkt vorgaenger spezielle infos(mehrere felder)...
1 design -top- --
2 Screendesign design --
3 website screendesign --
4 dynamisch website erst hier würden die hinteren felder wirklich genutzt werden -->viele leere eintraege...
ich denke in meiner ersten variante lassen sie die abfragen auch angenehmer gestalten...
Odium
Schau mal bei PEAR in der Kategorie Structures bei PEAR::Tree vorbei.
Bei vielen Lesevorgängen das schnellste Verfahren, um hierarchische Strukturen einfach abzubilden - man muß ja nicht alles selbst programmieren...
Mehr über nested sets gibts außerdem hier:
http://develnet.org/tech/tutorials/3.1.html