Thema: [MySQL] Suche
Einzelnen Beitrag anzeigen
  #5 (permalink)  
Alt 12.07.2005, 15:42
Carsten H. Carsten H. ist offline
Neuer Benutzer
neuer user
 
Registriert seit: 24.05.2005
Beiträge: 21
Carsten H. befindet sich auf einem aufstrebenden Ast
Standard

Eine andere, aber etwas aufwendigere Variante wäre es, die Suche über ein "Wörterbuch" zu realisieren.

Dafür brauchst Du drei Tabellen:
- Eine mit Deinen normalen Daten ("data")
- Eine mit den Wörtern ("words")
- Eine Relationstabelle für die Verbindung Wort<->Datensatz ("wd_rel")

Beispiel: Ein Datensatz mit der ID 1 und dem Text "Dies ist ein Test".

1.)
Splitten des Datensatzes an den Leerzeichen und die Einzelwörter in die Tabelle "words" schreiben. Durch einen auto_increment ID bekommen die alle eine eindeutige ID:

1 - Dies
2 - ist
3 - ein
4 - Test


2.)
Einfügen der Relation zwischen Wort und Datensatz-ID in die Tabelle "wd_rel". Das müsste dann ungefähr so aussehen (erster Wert = Wort-ID, zweiter Wert = Datensatz-ID

1 - 1
2 - 1
3 - 1
4 - 1


3.)
In einem Suchformular gibt nun jemand "dies ist" ein. Dann machst Du einen Query, der Dir die Datensatz-IDs ausspuckt, die über "wd_rel" mit den Wörter "Dies" und "ist" verknüpft ist. Das wars, dann musst Du nur die entsprechenden Datensätze laden.


Bei weiteren Datensätzen muss Du nun einfach nur überprüfen, ob es das Wort in "words" schon gibt. Wenn ja, dann nimm die alte ID und schreibe nur die neue Verknüpfung, wenn nein, speicher das neue Wort und schreibe die Verknüpfung mit der neuen ID des neuen Wortes.

Vorteil: Die Suche geht schneller, weil Du kein "LIKE" machen musst, sondern immer mit "=" vergleichen kannst. Außerdem hast Du keine Beschränkungen bezüglich der Wortlänge, es sei denn Du filterst im Voraus alles aus, was eine bestimmte Länge unterschreitet.

Nachteil: Zusätzliche Datenbanktabellen, die bei entsprechendem Content auch recht schnell anwachsen.

Bei einer Homepage mit nur 10-20 Unterseiten wäre dies Overkill, aber bei komplexeren Geschichten ist dies wohl die bessere Methode.
__________________
Musik-Sammler.de - Die Musiksammlungs-Verwaltung im Internet
--
Sense of View - Reviews ungewöhnlicher Filme aller Genres
Mit Zitat antworten