Mir ist gerade aufgefallen, dass ich noch'n kleinen Bug drin hab. Folgende Daten werden ebenfalls als doppelte Einträge erkannt:
Haus A Haustür A Straße Haus B Haustür B aaa 1 222 xyz 2 aaa 1 222 def 1 Meine Abfrage in der quickCheckRelaion() behandelt dieses Fallbeispiel nicht, wenn Einträge (Haus, Haustür und Straße) zwar zu 100% übereinstimmen, aber die Relation zwischen den anderen Daten unterschiedlich ist.
Das wäre nicht schlimm. Die Haustür eines Hauses ist fest mit einem anderen Haus Verknüpft, es kann aber passieren dass zwei gleiche Häuser über zwei unterschiedliche Strecken verbunden sind.
Die Straßen können auch doppelt vorkommen, solange es unterschiedliche Häuser sind (haben dann zwar den gleichen Straßenname, aber es ist eine andere Straße).
Allerdings kann bei dem selben Haus keine Straße doppelt vorkommen. Also ein und dasselbe Haus kann eine Straße nur einmalig belegen.
Will damit sagen, das Haus "abc" ist einzigartig, kann aber als "Haus A" als auch als "Haus B" vorkommen (kommt immer drauf an, welches Haus den Event gesendet hat, dieses ist dann Haus A),
Das Haus "abc" kann mehrere Haustüre besitzen.
Jede Haustür kann nur zu "einem" anderen Haus führen.
Das Haus "abc" kann aber mit merheren Haustüren unterschiedliche andere Häuser erreichen (aber immer noch pro Haustür nur ein anderes Haus).
Die einzelnen Straßen von Haus "abc" tragen immer einen anderen Namen.
Das Beispiel von dir kann daher nicht auftreten, da dort das selbe Haus "aaa" mit der selben Haustür "1" zu unterschiedlichen Häusern käme.
Den Fall gibt es nicht.
Ich glaube ich muss die Regeln vlt nochmal irgendwie sammeln und übersichtlicher gestalten, da es ganz schön durcheinander geschrieben wurde von mir (sorry dafür).
Vielen Dank nochmal das du dir so viel Mühe machst.
Das mit dem Exit Loop ist jetzt auch mit drin, das ist einfach aber super.