MartinR: Telefonnummer in Datenbanken! Wenn das nur so einfach wäre.

Beitrag lesen

Hi, bin die letzten Tage mal wieder auf ein richtig nettes Problem gestoßen das ich dem Forum nicht vorenthalten möchte. Jeder der schon mal eine Datenbank aufgesetzt hat kennt es. Erst schaut man wie das denn am klügsten umzusetzen ist. Schnell findet man ausführliche Erklärungen zu Normalformen um Redundanzen zu reduzieren und immer wieder den Hinweis Daten zu atomisieren. Ich hatte Telefonnummer bisher oft in einer char oder varchar gespeichert man möchte ja die führende 0 nicht verlieren. Dann dachte ich letztens das es doch super wäre hier ein etwas eleganteren Code zu erstellen.

So wie es im SelfHTML Forum vorgeschlagen wurde.

Naürlich hatte ich auch eine Anwendung für welche diese Änderung notwendig war. Also atomisieren (zerlegen) wir die Telefonnummer in ihre Komponenten. Da man den User nicht dazu zwingen will seine Telefonnummer in 200 Felder einzutragen und natürlich auch ein Datenbestand hat schreibt man sich dafür eine Funktion. Erstmal trivial gibt es eine Landesvorwahl also + oder 00 am Anfang. Dann einfach die nächsten zwei stellen z.B.49 für Deutschland speichern. Dummerweise gibt es Landesvorwahlen ein-, zwei- und dreistellig. Genauso geht es bei den Ortsvorwahlen weiter auch hier alles von zwei- bis fünfstellig zu finden.

Man könnte nun natürlich Arrays mit den Präfixen, Landesvorwahlen, Ortsvorwahlen usw. erzeugen und dann das passende suchen. Jedoch kommt mir das etwas sehr rechen- und speicherintensiv vor. Außerdem bräuchte man für jedes Land ein Array mit den Ortsvorwahlen.

Hat von euch jemand einen guten Vorschlag wie man so etwas elegant und professionel programmiert?