Hamster: (MySQL): Bewährte Lösungen für fehlerkorrgierende Suche?

Beitrag lesen

ich möchte bei einer Datenbank möglichst doppelte Einträge vermeiden.

Das ist ein aussergewöhnlich grosses Problem mit mehreren Aspekten.

Der erste ist der "physikalische", d.h. es ist sicherzustellen, dass die unterschiedlichen in der Realitaet vorgefundenen Entitäten auch tatsächlich unterschiedlich sind. Der Mensch irrt beim Unterscheiden typischerweise, bspw. kommt es zur Doppelt- oder Mehrfacherfassung von Firmen, Orten, Personen und was alles sonst noch so kreucht und fleucht. Ebenfalls bildet er Entitäten indem er eigentlich unterschiedliche Entitäten zusammenfasst, bspw. habe ich jahrelang zwei unterschiedliche Personen als eine einzige "geführt" (Herkunftsland Südamerika, brauchbar gutes Deutsch, ähnliches Aussehen). Dieser soziale Aspekt ist ganz primär mit sozialen Mitteln zu bearbeiten, IT kann da bestenfalls unterstützen.

Der zweite Aspekt ist IT-seitig zu bearbeiten, es geht wieder um die Mehrfacherfassung, diesmal aber, weil der Nutzer vom Erfassungssystem nicht hinreichend informiert wird über bereits erfasste Entitäten, d.h. der Erfassungsdialog ist unzureichend (ausreichend, also optimal, kann dieser allerdings auch nicht sein ;) . Nach meiner Erfahrung muss der Nutzer bei der Erfassung in einen Dialog (Suchmasken, Auswahlangebote, Trefferlisten) "hineingezwungen" werden, denn der Nutzer tendiert so zu sagen naturgemäss zur Mehrfacherfassung (aus Bequemlichkeit bspw. oder aus Unwissen über den Nutzen von Datenqualität).

Neben den o.g. präventiv zu beachtenden Massnahmen vor oder bei der Erfassung gibt es noch den Aspekt der Datenpflege. Diese ist (leider) auch nicht nur rein technisch zu bearbeiten sondern erfordert eine Portion Grips, d.h. der Mensch wird oft benötigt.

Stringvergleich und Vergleich von "harten Daten" (bspw. Geburtsdatum oder bestimmte IDs oder Kennungen (PassID)) schön und gut, aber letztlich wird qualifiziertes Personal benötigt. Das kannst auch Du sein. ;)
Ob es da vorgefertigte Tools bspw. für relationale Datenbanksysteme gibt, die etwas taugen, wage ich bezweifeln, denn die Datenbasen bzw. die dahinter steckenden Geschäftsmodelle scheinen mir zu unterschiedlich.
Du selbst könntest wohl die geeigneten Abfragen schreiben, allerdings sind die Mittel von SQL da recht eingeschränkt, vermutlich müsstest Du eigene Routinen schreiben in der Programmiersprache Deiner Wahl (PHP?).

Inhaltsanbieter (also diejenigen die strukturierte Daten verkaufen) jeglicher Art haben übrigens genau mit diesem Problem zu kämpfen. Da fällt mir gerade eine Geschichte ein mit einer Firma, die durch intensive Recherchen eine Produktdatenbank (möglichst viele Produkte möglichst vieler Hersteller) pflegt und grosse Schwierigkeiten mit der Aktualität, Qualität im allg. und der angestrebten Vollständigkeit hat...