2012-06-21 7 views
6

Welcher Datentyp wäre am besten zum Speichern einer MSISDN (Telefonnummer) geeignet?Am besten zu verwendender Datentyp und Länge für MSISDN-Speicher

müssen in der Lage sein, jede Telefonnummer in der Welt zu speichern.

Kennt jemand die maximal mögliche MSISDN-Länge, einschließlich internationaler Vorwahl?

Zum Beispiel Südafrika Telefonnummern + 27xxxxxxxxx, die in 11 Stellen ergibt sich ohne die +

Die + nicht gespeichert werden muss.

Vielen Dank im Voraus

Antwort

10

Ich würde BIGINT verwenden. Bitte vermeiden Sie die Verwendung von varchar um jeden Preis. Es ist eine sehr schlechte Idee, Varchar oder Char zu verwenden.

Gründe. Varchar/char nimmt mehr Platz ein, es ist langsamer, Nachschlagevorgänge und Querverweise zu machen, und der Index ist auch größer.

Wenn Sie Tabellen entwerfen und sie mit festgelegten Zeilenlängen halten, werden die Dinge schneller ausgeführt. Wenn Sie ein Textfeld haben müssen, ist es am besten, char anstelle von varchar zu verwenden, da die Gemeinkosten von varchar hoch sind.

Ich arbeite seit 12 Jahren in der Telekommunikation und entwerfe/optimiere VoIP/SMS Plattformen. Der Mörder Nummer eins, wenn ich zur Reparatur von Systemen komme, ist überall Varchars.

Nur meine 0,02 wert.

3

A MSISDN bis 15 Stellen begrenzt ist, Präfixe nicht enthalten.

MSISDN im GSM-Variante aufgebaut wie:

MSISDN = CC + NDC (or NPA) + SN 
CC = Country Code 
NDC = National Destination Code 
NPA = Number Planning Area 
SN = Subscriber Number 

Sie im Idealfall müssen nicht die + speichern. Es repräsentiert einfach einen Ausgang.

Die längste internationale Vorwahl würde nur beim Telefonieren mit einem Thuraya verwendet, also 882 16. Sie können das woanders speichern lassen.

Wenn Sie beabsichtigen, die internationale Vorwahl und MSISDN zu kombinieren, können Sie eine nvarchar (21) oder varchar (21) verwenden.