Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Doppelte Kunden Verhindern (https://www.delphipraxis.net/174965-doppelte-kunden-verhindern.html)

franktron 22. Mai 2013 09:18

Datenbank: MySQL • Version: 5.5 • Zugriff über: UNIDAC

Doppelte Kunden Verhindern
 
Wie kann ich am besten per SQL verhindern das ein Kunde Doppelt eingegeben wird.

Also die Felder die ich habe sind Anrede Vorname Nachname Strasse Land PLZ Ort.

Ich möchte am liebsten auch Schreibfehler berücksichtigen weis aber nicht wie

DeddyH 22. Mai 2013 09:22

AW: Doppelte Kunden Verhindern
 
Wenn in einem 200-Parteien-Haus 2 "Thomas Schmidt"s wohnen, darf nur einer davon Kunde werden? Ich würde eine doppelte Eingabe nicht generell verhindern, sondern nur eine Warnung ausgeben, wenn es sich um einen mutmaßlichen Doppler handeln könnte. Die letzte Entscheidung hat dann der Anwender zu treffen.

Klaus01 22. Mai 2013 09:24

AW: Doppelte Kunden Verhindern
 
Hallo,

kannst Du die Tabelle nicht unique deklarieren?
Dann sorgt das DBMS dafür das keine Daten doppelt eingefügt werden.

Wenn Du das nicht möchtest, könntest Du vorher mit einem SQL Statement abfragen
ob die Daten schon vorhanden sind.

Grüße
Klaus

baumina 22. Mai 2013 09:37

AW: Doppelte Kunden Verhindern
 
Zitat:

Zitat von DeddyH (Beitrag 1216018)
Wenn in einem 200-Parteien-Haus 2 "Thomas Schmidt"s wohnen, darf nur einer davon Kunde werden? Ich würde eine doppelte Eingabe nicht generell verhindern, sondern nur eine Warnung ausgeben, wenn es sich um einen mutmaßlichen Doppler handeln könnte. Die letzte Entscheidung hat dann der Anwender zu treffen.

Wenn die Datenbank keine Unterscheidung (z.B. KdNr) hat, dann brauchet sie auch keine 2 Thomas Schmidt's :lol:

mkinzler 22. Mai 2013 09:43

AW: Doppelte Kunden Verhindern
 
Das wäre dann aber ein sehr grober Designfehler.

baumina 22. Mai 2013 09:47

AW: Doppelte Kunden Verhindern
 
Sollte sich für dieses Problem eine coole Lösung ergeben, wäre mein Chef sicherlich auch gleich Feuer und Flamme dafür.

Ich wunder mich dass mich die Mitarbeiter eines Möbelhauses, bei dem ich öfters einkaufe, jedesmal neu in der Datenbank anlegen, obwohl ich mindestens schon 20mal drin stehe...Die armen Datenpfleger.:stupid:

grl 22. Mai 2013 09:50

AW: Doppelte Kunden Verhindern
 
Ich lasse den User nur über eine (phonetische) Suche ins Neuanlage-Formular. Dann kann der User selbst entscheiden ob der das Suchergebnis nimmt oder ob er wirklich einen neuen Kunden anlegt.

Suchen kann er dabei auch nach Namensteilen - wenn er "M Muster" ins Suchfeld eingibt kommt Max Mustermann genauso wie Martin Muster oder Martina Mussder....

Luggi

DeddyH 22. Mai 2013 09:51

AW: Doppelte Kunden Verhindern
 
Zitat:

Zitat von baumina (Beitrag 1216024)
Ich wunder mich dass mich die Mitarbeiter eines Möbelhauses, bei dem ich öfters einkaufe, jedesmal neu in der Datenbank anlegen, obwohl ich mindestens schon 20mal drin stehe...Die armen Datenpfleger.:stupid:

Für Layer-8-Fehler kann ja keine Software etwas :stupid:

stahli 22. Mai 2013 09:52

AW: Doppelte Kunden Verhindern
 
Ich sehe das wie DeddyH.
Ein Hinweis ist nützlich bzw. für bestehende Datenbestände auch eine generierte Liste durch jeder-mit-jedem-Vergleich.

Wenn Dich unscharfe Suche interessiert, dann kannst Du hier mal schauen:
http://www.delphipraxis.net/101160-s...s-gesucht.html
http://www.delphipraxis.net/154811-v...rozentual.html

Wie man eine "Ähnlichkeit" genau ermittelt und bewertet hängt vom Anwendungszweck ab.
Wir haben bei uns Adressen noch auf "c/o" untersucht und den Bereich davor und danach extra bewertet.
Mit dem Ergebnis sind wir sehr zufrieden, wobei es natürlich immer auch klare falsch-positive Treffer gibt.

In eine StoreProcedure haben wir das noch nicht gegossen, ist also eine reine Delphifunktion.

generic 22. Mai 2013 10:07

AW: Doppelte Kunden Verhindern
 
Zitat:

Zitat von franktron (Beitrag 1216017)
Ich möchte am liebsten auch Schreibfehler berücksichtigen weis aber nicht wie

Schreibfehler können mit der Levenshtein-Distanz berücksichtigt werden.

https://www.google.de/search?q=leven...oq=levensteins


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:24 Uhr.
Seite 1 von 2  1 2      

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