146

Was ist die längste mögliche weltweite Telefonnummer, die ich in SQL varchar(length) für Telefon betrachten sollte.Was ist die längste weltweite Telefonnummer, die ich in SQL betrachten sollte varchar (Länge) für Telefon

Überlegungen:

  • + für Ländercode
  • () für Vorwahl
  • x + 6 Nummern für Erweiterungs Verlängerung (so machen es 8 {Raum})
  • Räume zwischen Gruppen (dh in amerikanischen Telefonen + x xxx xxx xxxx = 3 Leerzeichen)
  • hier ist wo ich brauche deine Hilfe, ich will es weltweit

Denken Sie daran, dass ich in meinem speziellen Fall jetzt keine Karten usw. brauche. Die Nummer beginnt mit dem Ländercode und endet mit der Endung, es werden keine Fax/Telefon-Kommentare, keine Telefonkarten benötigt.

+0

Ich denke, die Umwandlung in lange Wert wäre eine gute Lösung, und es wird nur 64bit Speicherplatz benötigen, ich habe dies seit Jahren verwendet, keine Probleme –

+1

15 Ziffern: http://en.wikipedia.org/ wiki/Telephone_numbering_plan – ma11hew28

+0

@MattDiPasquale bereits erwähnt [hier] (http://Stackoverflow.com/a/4729239/75500), aber danke! – Shimmy

Antwort

67

Nun bedenkt es zwischen einem varchar (30) und einem varchar (100), wenn Sie nur der Speicherung 20 Zeichen in jedem, irrt auf der Seite der Vorsicht keinen Kopf Unterschied ist und einfach 50 machen.

+13

Nur für das Wissen: Also, wenn IS irgendwelche Overhead ist? Bitte fügen Sie eine Quelle in Ihre Antwort ein, damit wir die Grundlagen daraus lernen können. – Shimmy

+4

Ich weiß, dass sollte der Fall sein, aber es ist nicht immer so. In MySQL (zum Beispiel) wird die volle Länge zum Sortieren verwendet. Es ist am besten, zumindest einen minimalen Aufwand anzuwenden. –

+1

Bei Verwendung eines CHAR zum Beispiel. Die SQL Server-Dokumentation (zu und selbst lesen) zeigt genau, dass nicht verwendete Größe in Varchar wirklich nicht verwendet wird, d. H. Der Aufwand für nicht verwendete Zeichen ist 0. – TomTom

9

Es ist ein bisschen schlimmer, ich benutze eine Telefonkarte für internationale Anrufe, so dass seine lokale Nummer in den USA + Konto # (6 Ziffern) + Pin (4 Ziffern) + "Pause" + was Sie oben beschrieben.

ich vermute, es könnte auch andere Fälle geben,

+1

Du hast einen sehr guten Punkt. Ich fügte ein paar Zeilen zu meinem msg, pls lesen – Shimmy

+5

Calling Card Wahlwiederholung sollte nicht in der Datenbank sein, obwohl - das ist der Teil, der beim Wählen nach Wählregeln hinzugefügt wird. Gespeicherte Nummern sollten in ISO-Form vorliegen, ohne Angaben zum Wählen. – TomTom

13

In der GSM-Spezifikation 3GPP TS 11.11, gibt es 10 Bytes in der MSISDN EF (6F40) für "Einwahlnummer" beiseite gelegt. Da dies die GSM-Darstellung einer Telefonnummer ist, und ihre Verwendung ist Nibble getauscht, (und es gibt immer die Möglichkeit von Klammern) 22 Zeichen der Daten sollten reichlich sein.

Meiner Erfahrung nach gibt es nur eine Instanz von öffnenden/schließenden Klammern, das ist meine Argumentation für das Obige.

115

Angenommen, Sie speichern keine Dinge wie '+', '()', '-', Leerzeichen und Was-haben-Sie (und warum würden Sie, sie sind Präsentationsprobleme, die basierend auf lokalen Bräuchen variieren und die Netzwerkverteilungen sowieso), die ITU-T-Empfehlung E.164 für das internationale Telefonnetz (über das die meisten nationalen Netze verbunden sind) gibt an, dass die gesamte Nummer (einschließlich Landesvorwahl, aber ohne Vorwahlnummern wie international calling prefix) die von Land zu Land variieren kann, einschließlich Suffixen, wie PBX-Nebenstellennummern) höchstens 15 Zeichen sein.

Anrufpräfixe hängen vom Anrufer und nicht vom Angerufenen ab und sollten daher (in vielen Fällen) nicht mit einer Telefonnummer gespeichert werden. Wenn die Datenbank Daten für ein persönliches Adressbuch speichert (in diesem Fall ist es sinnvoll, das internationale Anrufpräfix zu speichern), sind die längsten internationalen Präfixe, mit denen Sie zu tun haben (according to Wikipedia), in Finnland derzeit 5-stellig.

Wie bei Suffixen unterstützen einige Telefonanlagen bis zu 11-stellige Nebenstellen (wiederum according to Wikipedia). Da PBX-Nebenstellennummern Teil eines anderen Wählplans sind (Nebenstellenanlagen sind von Telefonzentralen getrennt), müssen Nebenstellennummern von Telefonnummern unterschieden werden, entweder mit einem Trennzeichen oder durch Speicherung in einer anderen Spalte.

+4

Wenn Sie die Formatzeichen nicht speichern (wie '+', '(', ')', '-' und '') und Zahlen aus verschiedenen Nationen speichern, können Sie eine Spalte hinzufügen, um dies anzuzeigen Formattyp der Nummer für die Anzeige der Nummer. – Trisped

+13

Untere Zeile: '15' Zeichen. Wenn Präfix und Suffix gespeichert werden, ist die untere Zeile: 5 + 15 + 11 = "31". –

+2

@MattEnright, ich denke, du solltest AlikElzin aktualisieren [Kommentar] (http://stackoverflow.com/questions/723587/whats-the-longest-possible-worldwide-phone-number-i-should-consider-in-sql- varc? noredirect = 1 # comment40058364_4729239) in Ihrer Antwort. – Shimmy

Verwandte Themen