Manuel Schölling: Telefonnummern in mySQL

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...

  1. 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

    1. 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

      1. » auf jeden Fall vorher atomisieren.

        Was meinst du mit atomisieren???

        1. 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

  2. Hallo,

    wobei man bei den nummern dann ja keine leertasten oder klammern verwenden kann...

    Genau - deshalb nehm ich immer text

  3. 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

    1. jop, würd ich auch
      (ich nehm für fast alles varchar...)

      greetings,
      benni

  4. 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