Telefonnummern in mySQL
Manuel Schölling
- datenbank
Hallo,
ich habe das problem, dass ich eine telefonnummer in meiner mySQL-DB speichern will.
da es keinen extra datentyp nehmen kann, wollte mal fragen wie ihr so etwas speichert.
als text oder als nummern.
wobei man bei den nummern dann ja keine leertasten oder klammern verwenden kann...
HI
ich habe das problem, dass ich eine telefonnummer in meiner mySQL-DB speichern will.
Ich nehme zwar eine Access DB via SQL aber das spielt keine Rolle
da es keinen extra datentyp nehmen kann, wollte mal fragen wie ihr so etwas speichert.
als text oder als nummern.
wobei man bei den nummern dann ja keine leertasten oder klammern verwenden kann...
denn aus dem von Dir aufgefürhten Grund kam für mich, Zwecks übersichtlicher Darstellung einer langen Telefonnummer, 0049 6134/222-256 nur Text in Frage.
bydey
Hi,
auf jeden Fall vorher atomisieren. Sonst findest Du nie eine Nummer wieder, wenn Du danch suchst und kannst sie auch nicht vernünfitg sortieren.
0049 6134/222-256 nur Text in Frage.
Land Ort Zentrale Durchwahl
Ich weiß allerdings nicht, ob dieses Satz-Format überall passt. Kennt einer noch andere Untergliederungen? Wie ist das in Frankreich, USA, ...?
Grüße
Chris
» auf jeden Fall vorher atomisieren.
Was meinst du mit atomisieren???
Hallo,
» auf jeden Fall vorher atomisieren.
Was meinst du mit atomisieren???
Das sollte eigentlich aus dem weiteren Text des Postings hervorgehen. Bei der Datenmodellierung spricht man von sogenannter "atomistischer Darstellung". Gemeint ist das Aufspalten der Daten in kleinste Entitäten (nicht weiter teilbare Einheiten zusammenhängender Datenzeichen)
Eine Telefonnummer
049 7681 12345-99
lässt sich aufspalten in folgende Entitäten:
Ländervorwahl: 049
(Vorwahlziffer Inlands-Ferngespräch): 0
Ortsvorwahl: 7681
Anschlusskennung: 12345
(Zentraldurchwahl): 1
Durchwahl: 99
Aus den Entitäten ergibt sich der vollständige Datenwert / Schlüssel
Die in Klammern stehenden Entitäten sind in einigen Schlüsseln nicht erkennbar. Die Zusammensetzung / Aufspaltung von Daten in einer Datenbank kann also von bestimmten Bedingungen der Abfrage (Triggern) abhängig sein: Wenn Ländervorwahl leer, leite Ortsvorwahl mit "0" ein. Wenn keine Durchwahl angegeben, ergänze Anschlusskennung mit "1".
Nur das atomistische Modell inclusive der gültigen Regeln garantiert eine konsistente Verarbeitung der Daten. Teilmengen können so immer "richtig" dargestellt werden und führen nicht zu späteren Verarbeitungsfehlern. Insbesondere sortierte Darstellungen von Datenmengen leiden oft unter mangelnder Atomisierung.
Ich hoffe, das einigermaßen verständlich erklärt zu haben.
Grüße
Chris
Hallo,
wobei man bei den nummern dann ja keine leertasten oder klammern verwenden kann...
Genau - deshalb nehm ich immer text
Hallo,
ich habe das problem, dass ich eine telefonnummer in meiner mySQL-DB speichern will.
da es keinen extra datentyp nehmen kann, wollte mal fragen wie ihr so etwas speichert.
als text oder als nummern.
wobei man bei den nummern dann ja keine leertasten oder klammern verwenden kann...
ich würde char oder varchar nehmen
gruss
jop, würd ich auch
(ich nehm für fast alles varchar...)
greetings,
benni
Hallo,
ich habe das problem, dass ich eine telefonnummer in meiner mySQL-DB speichern will.
da es keinen extra datentyp nehmen kann, wollte mal fragen wie ihr so etwas speichert.
als text oder als nummern.
wobei man bei den nummern dann ja keine leertasten oder klammern verwenden kann...
Hi,
ich "speichere" seit Jahren Telefonnummern und ich hab' herausgefunden, dass man ein char(30) oder varchar(30) nhemen kann.
Kein Syntaxcheck "Telefonnummer-OK?" einbauen, kein numeric-Datentyp erzwingen. - Lohnt sich nicht.
Die Nutzer bauen trocken mal ein "b" oder ein "p" ein; und die ha'm natürlich recht.
Wenn z.B. Fax-Server auf die Nummer zugreifen und die Nummer stimmt nich', dann ist der Nutzer "schuld" und nich' das System. => Nich' den Nutzer entlasten in diesem "Use-Case".
Gruss,
Lude