power-box.de
-


Hinweise


Antwort
 
LinkBack Themen-Optionen Thema durchsuchen Thema bewerten
Alt 14.03.2005, 11:31   #1
TP-Senior
 
Registriert seit: Nov 2004
jackie_o macht alles soweit korrekt

Muenchen und München sollen gefunden werden


Guten Morgen

Hab noch mal ein paar Fragen zu meiner Adress-DB.

1. Die Suche soll nach Ort, PLZ oder Vorwahl stattfinden
Hab jetzt 3 Indizes erstellt (s.o) um nicht die ganze DB sequentiell durchsuchen zu müssen.
Der Indexanteil in kB ist jetzt ca. 1/3 des gesamten Speicherbedarfs.
Frage: Is das normaal oder wie macht man's besser?
(Das Ding wird nur gelesen, es werden keine Inserts gemacht)

Mein SQL war:
HTML-Code:
CREATE TABLE `test_index` (
`plz` VARCHAR( 5 ) NOT NULL ,
`ort` VARCHAR( 60 ) NOT NULL ,
`vorwahl` VARCHAR( 7 ) NOT NULL ,
`telefon` VARCHAR( 20 ) NOT NULL ,
`name` VARCHAR( 100 ) NOT NULL ,
`id` INT( 7 ) NOT NULL AUTO_INCREMENT ,
PRIMARY KEY ( `id` ) ,
INDEX ( `plz` , `ort` , `natVorwahl` ),
KEY index_plz (plz(3)),
KEY index_ort (ort(3)),
KEY index_vorwahl (vorwahl(3))
)
2. Problem:
Möchte in meiner DB gerne sowohl "Muenchen" als "München" finden, der Eintrag selber lautet München mit ü. Wie kann man sowas machen?
Zwei Suchstrings aus der Eingabe machen? Hmmm. Keine Ahnung.

Sonnige Grüße (endlich mal wieder)
Jackie
jackie_o ist offline   Mit Zitat antworten


Alt 14.03.2005, 12:05   #2
DSB
TP-Veteran
 
Benutzerbild von DSB
 
Registriert seit: Mar 2005
Ort: Oyten
DSB ist ein richtiges Arbeitstier - DANKEDSB ist ein richtiges Arbeitstier - DANKEDSB ist ein richtiges Arbeitstier - DANKEDSB ist ein richtiges Arbeitstier - DANKE
Ich würde jeden Eintrag vor dem Abspeichern überprüfen, eventuell umwandeln und generell nur eine Variante in der DB speichern.

Egal ob der User "Muenchen" oder "München" eingibt - intern immer "München" abspeichern.

Beim Auslesen kann man dann die gleiche Logik anwenden.
Also den eingegebenen Suchbegriff genauso umwandeln und dann muss man nur eine Suchroutine machen.
__________________
Gruß, DSB
Einfaches Backup/ Restore Deiner MySQl-Datenbank
DSB ist offline   Mit Zitat antworten
Alt 14.03.2005, 12:24   #3
TP-Special Mod
 
Benutzerbild von steffenk
 
Registriert seit: Feb 2005
Ort: Haan / NRW
steffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine User
Du kannst mal mit soundex experimentieren :
soundex -- Berechnet die Laut-Ähnlichkeit eines Strings
http://no.php.net/manual/de/function.soundex.php
__________________

Typo3 · MySQLDumper · dislabs
·
manche Mühlen mahlen schneller ...
"Ich habe Rücken"
Horst Schlämmer
steffenk ist gerade online   Mit Zitat antworten
Alt 14.03.2005, 12:39   #4
TP-Special Mod
 
Benutzerbild von steffenk
 
Registriert seit: Feb 2005
Ort: Haan / NRW
steffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine User
... ansonsten hilft die Suche mit where stadt like 'M_%nchen%'
__________________

Typo3 · MySQLDumper · dislabs
·
manche Mühlen mahlen schneller ...
"Ich habe Rücken"
Horst Schlämmer
steffenk ist gerade online   Mit Zitat antworten
Alt 14.03.2005, 12:39   #5
TP-Senior
 
Registriert seit: Nov 2004
jackie_o macht alles soweit korrekt
Hi!
Danke schon mal für deine Antwort.
Eingetragen wird nichts in diese DB, das macht also kein Problem.

Nur das Suchen...
ich kann ja leider nicht generell aus "ue" "ü" mache, weil es ja auch Orte gibt die mit ue korrekt sind, die dann nicht geunden werden...

Steh glaub ich grad auf der Leitung...

edit: uups wurde grade beim Tippen abgelenkt, erst mal lesen was oben steht
jackie_o ist offline   Mit Zitat antworten
Alt 14.03.2005, 12:46   #6
TP-Senior
 
Registriert seit: Nov 2004
jackie_o macht alles soweit korrekt
hmm soundex klingt unheimlich, glaub das heb ich mir mal für später auf
[deckt das auch fälle wie Minga(???sorry, bin nordisch) oder Hammborch ab ]

Ich kapier leider noch nicht was ich mit dem vom User eingegebenen Suchstring machen muss...
jackie_o ist offline   Mit Zitat antworten
Alt 14.03.2005, 13:00   #7
TP-Special Mod
 
Benutzerbild von steffenk
 
Registriert seit: Feb 2005
Ort: Haan / NRW
steffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine User
Also soundex sucht nach ähnlichen Strings. Das funktioniert eigentlich nur gut bei englischen Begriffen.

Du kannst in dem vom User eingegebenen Suchbegriff folgende Ersetzung machen

ü => _%
ue => _%

also z.B.

$stadt=strtr($stadt, array('ü' => '_%', 'ue' => '_%'));
$stadt.='%';

Select .... where stadt like '$stadt';
__________________

Typo3 · MySQLDumper · dislabs
·
manche Mühlen mahlen schneller ...
"Ich habe Rücken"
Horst Schlämmer
steffenk ist gerade online   Mit Zitat antworten
Alt 14.03.2005, 13:23   #8
DSB
TP-Veteran
 
Benutzerbild von DSB
 
Registriert seit: Mar 2005
Ort: Oyten
DSB ist ein richtiges Arbeitstier - DANKEDSB ist ein richtiges Arbeitstier - DANKEDSB ist ein richtiges Arbeitstier - DANKEDSB ist ein richtiges Arbeitstier - DANKE
Oder Du machst eine Extraspalte, wo Du die Begriffe umgewandelt speicherst und in der Du suchst. Die Ausgabe der Stadt wird aber über die erste Spalte gemacht.
Dann hast Du intern nach eigenen Kriterien umgewandelt, nach außen hin erscheint der Stadtname aber immer richtig geschrieben.
__________________
Gruß, DSB
Einfaches Backup/ Restore Deiner MySQl-Datenbank
DSB ist offline   Mit Zitat antworten
Alt 14.03.2005, 13:36   #9
TP-Senior
 
Registriert seit: Nov 2004
jackie_o macht alles soweit korrekt
@St@eff.en
ist leider auch nicht wirlich praktikabel
Angenommen der User sucht München, ist aber zu faul zum Tippen und schreibt nur "mün", dann kriegt ja auch das ganze Zeug, das mit "mön" und "män" anfängt...

@DSB
extraspalte ist bei 100.000 Datensätzen leider nicht drin

ich müsste glaub ich 2 Abfragen machen, das Suchwort duplizieren ue gegen ü austauschen und umgekehrt und dann beide Strings losschicken
oder geht das irgendwie so :

HTML-Code:
WHERE $suchwort1 OR $suchwort2 LIKE $stadt
?

Gruß Jackie
jackie_o ist offline   Mit Zitat antworten
Alt 14.03.2005, 13:40   #10
DSB
TP-Veteran
 
Benutzerbild von DSB
 
Registriert seit: Mar 2005
Ort: Oyten
DSB ist ein richtiges Arbeitstier - DANKEDSB ist ein richtiges Arbeitstier - DANKEDSB ist ein richtiges Arbeitstier - DANKEDSB ist ein richtiges Arbeitstier - DANKE
Zitat:
Zitat von jackie_o
@DSB
extraspalte ist bei 100.000 Datensätzen leider nicht drin
Wieso denn das nicht?
Das ist für MySQL ne Lachtablette.

Und es ist wesentlich performanter, als die Variante hier:
HTML-Code:
ich müsste glaub ich 2 Abfragen machen, das Suchwort duplizieren ue gegen ü austauschen und umgekehrt und dann beide Strings losschicken
__________________
Gruß, DSB
Einfaches Backup/ Restore Deiner MySQl-Datenbank

Geändert von DSB (14.03.2005 um 13:43 Uhr).
DSB ist offline   Mit Zitat antworten
Alt 14.03.2005, 13:44   #11
TP-Senior
 
Registriert seit: Nov 2004
jackie_o macht alles soweit korrekt
ah! Geht das automatisch?
Ich dachte ich geh da zu fuß durch und mach überall wo ich ein ü finde ind ie Spalte "umlautoderso" einen eintrag.
Sorry, bin noch nicht so fit mit dem kram.
jackie_o ist offline   Mit Zitat antworten
Alt 14.03.2005, 13:49   #12
DSB
TP-Veteran
 
Benutzerbild von DSB
 
Registriert seit: Mar 2005
Ort: Oyten
DSB ist ein richtiges Arbeitstier - DANKEDSB ist ein richtiges Arbeitstier - DANKEDSB ist ein richtiges Arbeitstier - DANKEDSB ist ein richtiges Arbeitstier - DANKE
Nee, doch nicht zu Fuß.
Dafür hast Du doch nen Compi der Dir solche Arbeiten abnimmt.
Da schreibst Du Dir natürlich eine kleine Routine, die die Daten aus der ersten Spalte ausliest, gegebenenfalls umwandelt und dann in die Suchspalte einträgt.

Das MySQL-Suchstatement beziehst Du dann später nur auf die Suchspalte.
Auf dem Bildschirm gibst Du dann aber die erste Spalte mit dem richtig geschriebenen Namen aus.
__________________
Gruß, DSB
Einfaches Backup/ Restore Deiner MySQl-Datenbank
DSB ist offline   Mit Zitat antworten
Alt 14.03.2005, 13:52   #13
TP-Senior
 
Registriert seit: Nov 2004
jackie_o macht alles soweit korrekt
ok probier ich mal

Hat vielleicht noch jemand ne Anmerkunf zu meiner ersten Frage, das mit dem Index?

Gruß Jackie
jackie_o ist offline   Mit Zitat antworten
Alt 14.03.2005, 14:01   #14
DSB
TP-Veteran
 
Benutzerbild von DSB
 
Registriert seit: Mar 2005
Ort: Oyten
DSB ist ein richtiges Arbeitstier - DANKEDSB ist ein richtiges Arbeitstier - DANKEDSB ist ein richtiges Arbeitstier - DANKEDSB ist ein richtiges Arbeitstier - DANKE
Du musst selbst entscheiden ob Du die Indexe wirklich benötigst.
Es macht sicherlich keinen Sinn auf alle Felder einen Index zu legen.

Ich würde erstmal die Funktionalitäten programmieren und dann mit Hilfe einer zweiten Datenbank testen ob sich die Indexe wirklich lohnen. Es hängt davon ab wieviele Besucher die Seite hat und wie schnell der MySQL-Server ist.


Aus dem Bauch heraus würde ich aber sagen, dass man sich einen Index für die Vorwahl sparen kann.
__________________
Gruß, DSB
Einfaches Backup/ Restore Deiner MySQl-Datenbank
DSB ist offline   Mit Zitat antworten
Alt 14.03.2005, 14:13   #15
TP-Senior
 
Registriert seit: Nov 2004
jackie_o macht alles soweit korrekt
meine idee war jetzt, erst die DB-struktur mit den Indexen festzulegen und dann die Daten reinzuschmeissen.

Kann man den Index auch später genausogut erstellen?
jackie_o ist offline   Mit Zitat antworten
Antwort

  Aktuelles Thema
  TP Hilfe Forum > Web-Editoren & Coding > Traum-Dynamik
Muenchen und München sollen gefunden werden Muenchen und München sollen gefunden werden
« Md5 Checksumme ist immer gleich! | Ganz simples Fotoalbum / Bildergalerie Skript gesucht »

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:22 Uhr.

Powered by: vBulletin Version 3.7 (Deutsch)
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd. / Search Engine Friendly URLs by vBSEO 3.2.0 ©2008, Crawlability, Inc.
Traum-Projekt.com | Suchen | Archiv | Impressum | Kontakt | | | Nach oben |



1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67