Abbildung 15 zeigt den Prototyp der Benutzeroberfläche für die Hyperlinkdatenbank mit ihren wichtigsten Elementen zur Navigation durch den Themenkatalog und das Auffinden der gesuchten Einträge.
Abbildung 15: Aufbau einer typischen HTML-Seite der Hyperlinkdatenbank mit ihren wichtigsten Elementen
3.4.1 Der Themenkatalog
Je umfangreicher und detaillierter ein Themenkatalog wird, desto schwieriger wird es, einen neuen Linkeintrag eindeutig einem Thema zuzuordnen. Um nicht dazu zu verleiten, einen Linkeintrag im Zweifelsfall unter mehreren Themen einzutragen, soll stattdessen der Themenkatalog so flexibel gestaltbar sein, daß ein Eintrag gegebenenfalls über unterschiedliche logische Suchstränge erreichbar ist. Dazu werden sogenannte "Querverweise" eingeführt, die zusammen mit den Unterthemen angezeigt werden, aber tatsächlich nur Aliases für verwandte Themen in einem anderen Hierarchiestrang sind. Dadurch stellt sich aus der Sicht des Anwenders der als Baumstruktur konstruierte und verwaltete Themenkatalog mehr als eine Art Netzstruktur dar (siehe Abbildung 16).
Abbildung 16: Der Themenkatalog mit Querverweisen
Die Verschachtelungstiefe des Themenkataloges, d.h. die Anzahl möglicher Ebenen sollte nicht grundsätzlich beschränkt sein, so daß sich für die Realisierung der Themenzuordnung eine rekursive Struktur anbietet. Das bedeutet, daß zu einem Thema jeweils nur ein Verweis auf das unmittelbar übergeordnete Thema gespeichert wird.
Für die Auflösung der typischen Konflikte beim Entwurf von Datenstrukturen "Performance vs. Speicherbedarf" und "schnelles Finden vs. schnelles Einfügen" habe ich die folgenden Grundsätze aufgestellt:
Aufbauend auf dieser Grundlage und mit bereits vorhandenen Vorstellungen zum Verwaltungstool (vgl. Abschnitt 3.5) habe ich für den Themenkatalog als zentralen Bestandteil der Hyperlinkdatenbank folgende Datenbanktabelle erstellt:
Feldname | Datentyp/ Größe | Erläuterung |
tid | Long Integer | Themen-ID zur schnellen Identifikation des Datensatzes |
refid | Long Integer | Referenz-ID = ID des Oberthemas, dem dieses untergeordnet ist; bei Themen der obersten Ebene ist refid=0 |
qid | Long Integer | Querverweis-ID: Falls dieser Datensatz einen Querverweis darstellt, ist qid = ID des Originalthemas, auf das dieser Querverweis als Alias verweist; bei Originalthemen muß gelten qid=tid (vgl. Abschnitt 3.6.2) |
name | Char (40) | Name des Themas; Querverweise schließen mit "@" als Kennzeichnung ab und können vom Namen des Originalthemas abweichen |
ueberschrift | Char (1000) | enthält HTML-Text für die Darstellung der klickbaren Themenhierarchie wie in Abbildung 15 gezeigt (ohne den eigenen Themennamen) |
sortierung | Char (1000) | enthält ebenfalls die Themenhierarchie, allerdings ohne HTML-Tags und inklusive eigenem Themenname; dient der einfachen Sortierung im Verwaltungstool |
einzug | Byte | entspricht der Ebenentiefe in der Themenhierarchie und dient ebenfalls der Darstellung des Themenkataloges als Baumstruktur im Verwaltungstool |
Tabelle 4: Datenbanktabelle "Themen"
Weitere Details zu dieser Struktur werden im späteren Verlauf dargestellt.
3.4.2 Die Hyperlinks
Die Hyperlinkeinträge werden in einer separaten Tabelle verwaltet, die lediglich IDs zu Informationen aus anderen Tabellen enthält:
Feldname | Datentyp/ Größe |
Erläuterung |
hlid | Long Integer | Link-ID |
name | Char (80) | Name bzw. Titel des Hyperlinks |
url | Char (100) | URL des Hyperlinks |
beschreibung | Char (250) | kurzer beschreibender Text; kann frei bleiben |
sprache | Byte | 1=dt., 2=engl., 4=sonstig; summierbar, z.B. 3=dt.+engl., franz. und engl. => sprache=6 |
stadt | Long Integer | ID: kontextabhängige Bedeutung (z.B. Sitz des Unternehmens); kann frei bleiben |
thema | Long Integer | ID des Themas, unter dem dieser Link eingeordnet ist |
Tabelle 5: Datenbanktabelle "Links"
Die Sprache, in der Inhalte auf einer Web-Site angeboten werden, ist ein wichtiges Kriterium bei der Suche nach Informationen. Da die Hyperlinkdatenbank in erster Linie für ein deutschsprachiges Publikum gedacht ist und englisch die Quasi-Standardsprache im Internet ist, wird eine Unterscheidung zwischen deutsch, englisch und sonstigen Sprachen als ausreichend erachtet.
3.4.3 Städte und Länder
Für die Selektion nach Städten habe ich mich aus mehreren Gründen dafür entschieden, die Städte in einer separaten Datenbanktabelle zu verwalten: Bei Erfassung neuer Hyperlinkeinträge müssen Städte somit aus einer vorgegebenen Liste ausgewählt werden und können nicht als Freitext eingegeben werden. Dadurch werden Schreibfehler und Uneindeutigkeiten durch unterschiedliche Schreibweisen ein und der selben Stadt vermieden. Außerdem ist es so möglich, festzustellen, ob es zu einer Stadt überhaupt Hyperlinkeinträge gibt und diese Städte bei einer entsprechenden Auflistung gar nicht erst anzuzeigen.
Da die Stadt unter Umständen ein zu spezifisches Suchkriterium sein kann, soll alternativ nach Postleitzahlenbereichen (für deutsche Städte) selektiert werden können. Die Erfahrung hat gezeigt, daß es bei der Eingabe neuer Hyperlinks oft nicht möglich ist, mit verhältnismäßigem Aufwand die Adresse und exakte Postleitzahl zu ermitteln. Oft ist das sogar unmöglich, oder es ist nur eine Zuordnung zu einer Stadt gewünscht. Deshalb habe ich mich dazu entschieden, nur die ersten zwei Ziffern der Postleitzahl, in Verbindung mit der Stadt zu erfassen. Damit ist eine ausreichend detaillierte Abfrage nach PLZ-Gebieten möglich, ohne den Aufwand bei der Erfassung neuer Hyperlinks entscheidend zu vergrößern (es gibt nur wenige deutsche Großstädte mit mehreren PLZ-Gebieten).
Die Länder werden ebenfalls in einer separaten Tabelle, mit internationalem Länderkennzeichen und Name gespeichert.
Feldname | Datentyp/ Größe |
Erläuterung |
stid | Long Integer | Stadt-ID |
land | Byte | ID des Landes, in dem die Stadt liegt |
region | Long Integer | PLZ-Region; für Deutschland: erste zwei Ziffern der PLZ; für Ausland komplette PLZ oder freilassen (z.Zt. keine Selektion) |
name | Char (30) | Name der Stadt |
Tabelle 6: Datenbanktabelle "Staedte"
Feldname | Datentyp/ Größe |
Erläuterung |
lid | Byte | Landes-ID |
lkz | Char (3) | Internationales KFZ-Länderkennzeichen |
land | Char (20) | Name des Landes |
Tabelle 7: Datenbanktabelle "Laender"
Abbildung 17 zeigt alle Datenbanktabellen und ihre Beziehungen im Überblick. Die fettgedruckten Attribute sind die jeweiligen eindeutigen Schlüssel der Tabellen.
Abbildung 17: Die Struktur der Hyperlinkdatenbank mit ihren Beziehungen im Überblick