Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Datenbankweite Suche (Spalte/Datensatz/Tabelle) (https://www.delphipraxis.net/69514-datenbankweite-suche-spalte-datensatz-tabelle.html)

RuX 16. Mai 2006 12:51

Datenbank: Informix • Version: 7 • Zugriff über: BDE

Datenbankweite Suche (Spalte/Datensatz/Tabelle)
 
Wie realisiert man am besten, oder welche möglichkeiten gibt es für eine datenbank weite suche?
D. h. der suchwert ist z. b. "test123" und es soll in allen spalten aller datensätzen aller tabellen gesucht werden.

zwei möglichkeiten fallen mir ein:
a) beim speichern/ändern von datensätzen wird für jeden wert (spalte) des neuen datensatzes ein neuer datensatz in einer index tabelle geschrieben (wert, ursprungstabelle, ursprungsspalte), die dann später durchsucht werden kann. beim löschen dann werden dann dementsprechend die datensätze der index tabelle wieder gelöscht
b) anhand der systemtabellen werden dynamische UNIONs zusammengebaut

ich glaube b ist unpraktikabel da das sql ewig lang werden würde und damit zu lang dauert und/oder zu groß ist ums an den server zu schicken.
die erwähnte index tabelle aus a wäre aber auch schnell riesig groß.

gibs noch andere einfachere möglichkeiten für solch eine suche!? ich glaub bei mssql gibt es die möglichkeit auf niedrigerem level als sql auf die daten zuzugreifen was dann solche suchabfragen möglich werden lässt.

mkinzler 16. Mai 2006 12:58

Re: Datenbankweite Suche (Spalte/Datensatz/Tabelle)
 
Ich glaube der einzig gangbare Weg wäre der "Super-Index" der über Trigger realisierbar wäre. Ich farge mich aber ob ein solches Vorgehen sinnvoll ist, oder ob man besser das Datenbank-Design überprüfen sollte.

RuX 16. Mai 2006 13:58

Re: Datenbankweite Suche (Spalte/Datensatz/Tabelle)
 
das datenbank design ist vollkommen in ordnung. ich bin selber von der idee nicht sonderlich begeistert, aber ich hab das nicht zu entscheiden :)

es ist ungefähr so: der benutzer hat mal irgendwann einen preis von 123,45 gesehn/eingetippt, weiß jetzt aber nicht mehr ob das von einer rechnungsposition war, oder ein listenpreis vom einkauf oder doch nur ein rabatt, oder eine kilometer anzahl... :wall:
gott steh den DAUs bei ;)

mkinzler 16. Mai 2006 14:06

Re: Datenbankweite Suche (Spalte/Datensatz/Tabelle)
 
Zitat:

Zitat von RuX
das datenbank design ist vollkommen in ordnung. ich bin selber von der idee nicht sonderlich begeistert, aber ich hab das nicht zu entscheiden :)

es ist ungefähr so: der benutzer hat mal irgendwann einen preis von 123,45 gesehn/eingetippt, weiß jetzt aber nicht mehr ob das von einer rechnungsposition war, oder ein listenpreis vom einkauf oder doch nur ein rabatt, oder eine kilometer anzahl... :wall:
gott steh den DAUs bei ;)

Okay in diesem Fall sind es wohl die Extrawünsche von Gelegenheitsbenutzern ;-)

RuX 17. Mai 2006 16:26

Re: Datenbankweite Suche (Spalte/Datensatz/Tabelle)
 
extrawunsch ja, gelegenheitsnutzer nein :(


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:18 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz