phpbar.de logo

Mailinglisten-Archive

[php] Problem

[php] Problem

Markus Keller OrcaSoft m.keller_(at)_orcasoft.ch
Tue, 8 Feb 2000 17:01:03 +0100


Hallo Daniel


>Ich habe hier eine PostgresQL Datenbank in der ich für sehr viele
>Produktgruppen jeweils eine Tabelle habe, in der dann die einzelnen
Produkte
>mit Artikelnummer, Beschreibung, Bild usw. stehen. Nun möchte ich eine
>Volltext und eine Artikelnumernsuche realisieren, müßte dazu in jede der
>Tabellen reinschauen ob der Text, bzw. die Nummer enthalten sind. Gibt es
>eine Datenbankabfrage mit der ich in alle Tabellen reinschauen kann. Die
>Datenbankstruktur kann ich leider nicht ändern und auch eine zusätzliche
>Indiezierungstabelle wäre sehr umständlich...


IMHO ist Deine Datenbank ruiniert. Von Anfang an hätte es nur zwei Tabellen
geben dürfen. Einen Produktestamm und einen Artikelstamm. Die Tabellen
hättest Du dann relational verknüpfen können und das Problem mit der Suche
wäre gar nie aufgetreten. Aber weil Du schreibst, dass die Struktur nicht
geändert werden kann, könntest Du es mit einem kleinen Trick versuchen:

Erstelle eine neuen Tabelle, die die Namen der Artikel-Tabellen enthält. Für
jede Tabelle ein Datensatz in der neuen Tabelle. Dann kannst Du die neue
Tabelle öffnen und in einer while Schleife Alle Datensäte der Reihe nach
abarbeiten. Mit jedem Datensatz bekommst Du den Namen einer Artikel-Tabelle
und Du kannst Dir damit (Suchbegriff und Tabellenname) ein SQL Statement
bauen, das Du dann ausführst. Natürlich muss so für jede Artikel-Tabelle
eine einzelne Abfrage ausgeführt werden. Das ist von der Performance her
nicht optimal.

Das ganze ist auf alle Fälle eine Notlösung und ich hab sowas noch nie
ausprrobiert. Du solltest wenn irgend möglich dir Struktur ändern.

Gruss

Markus



php::bar PHP Wiki   -   Listenarchive