@p80286
Da die Beziehung zwischen PLZ und Ort gesucht wird, sollte es ausreichend sein. Soweit ich weiß gibt es für Großkunden und Postfächer feste Bereiche. Falls also die PLZ für die Wohnort Bestimmung genutzt werden soll, könnten sie ausreichen oder aber eine Warnung "keine echte PLZ" generieren. Je nach dem was man braucht. ggf. wäre es in der Vergleichstabelle sinnvoll einen Typen für die PLZ zu speichern 1=StraßenPLZ 2=Postfachplz 3=GroßkundenPLZ.
Prinzipiell hast Du da Recht, eigentlich müsste es reichen, nach Postleitzahlbereichen zu suchen.
Die Postleitzahlen für Leipzig (Straße-, Postfach- und Großkundenpostleitzahl) dürften z. B. von bis 04000 bis 04399 reichen.
Wenn's was kosten darf, dann ist die Post mit ihren Daten sicherlich immer die erste und beste Quelle.