PHP Duplikate optimierter bearbeiten?

Dsimon24

Lieutenant
Registriert
Aug. 2016
Beiträge
595
Hallo zusammen,

ich habe eine Webanwendung entwickelt, bei denen Personen eingetragen werden.
Bspw. wird folgendes der eingetragenen Person aufgenommen: ID, Vorname,
Nachname, Adresse, Bemerkung, Profil, etc.

Jetzt ist es möglich, dass manche Personen mehrfach (zu unterschiedlicher Zeit) einge-
tragen werden. Meist sind die Daten dann identisch, ab und an gibt es auch ein paar
Abweichungen in manchen Bereichen.

In einer Liste werden mir die Duplikate angezeigt.
Aktuell gehe ich so vor, dass ich einen Datensatz in Falle eines Duplikats manuell lösche.

Jetzt suche ich aber nach einer Möglichkeit, den Arbeitsprozess zu optimieren.
Ich lösche manuell den Datensatz, der die besseren, 'ausformulierteren'
Informationen enthält - dies kann ich aktuell nur händisch machen.

Habt ihr Ideen, wie ich den Prozess optimieren kann?
Ich bräuchte ein paar Denkanstöße, da ich gerade planlos überlege, wie ich vorgehen
könnte.
 
Update or insert anstatt nur ein Insert.
 
Du kannst vor dem Speichern prüfen, ob es ein identischer Datensatz ist. Wenn ja, dann speicherst du nicht und gibst eine Meldung aus.

Sind die Datensätze unterschiedlich, dann wird es schwierig. Das ist auch eine fachliche Entscheidung.
Evtl. schreibst du dir eine Seite, welche dir die restlichen "ähnlichen" Datensätze anzeigt und du kannst dann den gültigen auswählen. Der falsche wird gelöscht.
 
Öhm... Lass das sein. Dürfen nicht zwei Personen mit gleichem Namen unter der selben Adresse (Straße + Hausnummer) zu finden sein? Kann ja durchaus mal vorkommen.

Mach lieber eine Überprüfung beim Anlegen/Bearbeiten auf vorhandene Datensätze, dann soll derjenige selbst entscheiden ob es ein neuer Datensatz ist oder nicht. Genauer prüfen kannst du im Nachhinein immer noch.
 
Bei Personen (aus Deutschland) ist die Kombination aus Name, Vorname und Geburtstag eine ziemlich eindeutige Angelegenheit.
Zur Not noch den Geburtsnamen und den Geburtsort mit einbeziehen - das muss man aber erst bei sehr, sehr großen Datenbanken. Vergleicht man zusätzlich noch den Wohnort ist das eine nahezu 100 % Aussage für ein Duplikat, wenn die Daten übereinstimmen.

Im Nachhinein kann man mit Gewichtungsfaktoren arbeiten um den Wert eines Datensatzes zu ermitteln. Das Einfachste wäre eine Zählung von Wörtern über drei Buchstaben oder so etwas... kommt auch ein wenig auf die Datenstruktur drauf an. Trotzdem würde ich darüber keinen Automatismus entwerfen, sondern nur einen Löschvorschlag unterbreiten - es kann ja durchaus sein, dass in einer kürzeren, weniger wertvollen Mitteilung die dennoch wichtigere Nachricht steckt.

Aber am sichersten ist es aus meiner Erfahrung mit unseren CRM die drei Felder Vorname, Name, Geburtsdatum bei natürlichen Personen zu vergleichen und ein mehrfaches Anlegen identischer Werte dieser drei Felder schon im Vorfeld nicht zuzulassen.

Grüße
 
Zurück
Oben