phpbar.de logo

Mailinglisten-Archive

Wie gestaltet man diese Abfrage ?

Wie gestaltet man diese Abfrage ?

Christoph 'Leo' Weißenborn chw-le at gmx.de
Don Okt 20 10:37:29 CEST 2005


Hi Ben/B.Wolf,

in der Tat könnte die Abfrage einfacher sein, wenn die Struktur anders ist.
Allerdings ist Dein Modell bisher so, wie man es logischerweise umsetzt.
Meiner Meinung nach müßte jede Umsetzung, so sie denn die Struktur entsprechend
normalisiert behält die Schwierigkeit haben, daß man eine Menge von
Suchbegriffen mit einer Menge von Ergebnismengen (jeder Benutzer definiert ja
mit seinen Suchbegriffen wieder eine Menge) vergleichen muß.
Legt man die Mengen der Suchbegriffe jedes Benutzers aber nicht in einer
Tupel-Menge sondern in einem Feld allein ab, könnte die Abfrage über
String-Operationen laufen. Ob das ebenso performant ist, bleibt auszuprobieren
und ob das dann eine schöne SQL-Umsetzung ist, bezweifel ich mal.

Einige erklärende Worte zu meiner Idee mit der Verkettung:
Wenn in den Suchbegriffen des Benutzers keine Leerzeichen oder Kommas enthalten
sind, könnte dies als Trenner in dem Alle-Suchbegriffe-Feld dienen. Aber im
Endeffekt wird die Arbeit für die Middleware dann mit Einfügen, Ändern und
Löschen von Suchbegriffen wesentlich komplexer als bei einer Tupel-Variante.
Man würde sich die einfache Suche nur über diese Mehrarbeit erkaufen.
Wenn ich die Mehrarbeit mit einer "zusammengestückelten" Abfrage, wie ich sie
schon schrieb, vergleiche, ist die Abfrage gar nicht so kompliziert zu
erstellen. Es sind pro Suchbegriff nur zwei zusätzliche Teile im WHERE-Teil und
eine zusätzliche Tabelle im FROM-Teil anzufügen. Das klingt nach einfacheren
Sting-Operationen, als sie mit der Verkettungsvariante zu bewältigen wären.

... das zu meiner Idee. Evtl. gibt es aber doch noch eine passende Bibliothek
für Deine Middleware, mit der eine (ähnliche) Umsetzung der Verkettung sehr
einfach umgesetzt werden kann.

Gruß,
 Christoph
-- 
Fingerprint=65B7 73B6 5969 AC2B 4572 39A2 0DBC DAC1 3D6A 45B7

----------------------------------------------------------------
This message was sent using IMP, the Internet Messaging Program.

-- 
Infos zur Mailingliste, zur Teilnahme und zum An- und Abmelden unter
-->>  http://www.4t2.com/mysql 


php::bar PHP Wiki   -   Listenarchive