MYSQL Spaltentypen

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • MYSQL Spaltentypen

    Hallöchen,

    ich komme aus der MS Access Welt und würde nun gerne wissen, welche Spaltentypen ich für die folgende Felder verwenden sollte.
    Bitte gleich in der Syntax, dass ich sie für ein Create Table verwenden kann.

    Was ich in Erfahrung gebracht habe, das man für ein "Ja/Nein" Typ aus Access ein TINYINT(1) nimmt, stimmt das?

    was nehme ich für eine PLZ?
    - vielleicht "plz INT(5)"

    wie würdet ihr am besten ein Geburtsdatum Feld wählen, dass für eine Community in Frage kommt, wo einige Abfragen bzgl. des Geburtsdatums geschehen.

    Habe im Moment: geburtsdatum DATE und für das Mitgliedsdatum DATETIME

    Danke für Eure Tipps.

    Gruß
    Svenner.

  • #2
    Also ich verwende bei ja/nein TINYINT(1). Ob dass das wahre ist, ist ne andere Sache

    Bei PLZ kommt es auf mehrere Dinge an. Willst Du z.B. verschiedene Länder zulassen, brauchst Du evtl. auch Buchstaben in dem feld. Sprich ein VARCHAR Feld ist angebracht. Willst aber z.B. nach den PLZ sortieren, sollte es ein INT Feld sein ...

    Geburtsdatum: DATE ist schon OK. Man kann allerdings auch ein INT Feld nehmen, und einen TIMESTAMP reinschreiben. Alber kein MYSQL Timestamp, denn der wird bei einem UPDATE immer auf now() gesetzt. Zumindest das erste Feld diesen Typs.
    h.a.n.d.
    Schmalle

    http://impressed.by
    http://blog.schmalenberger.it



    Wichtige Anmerkung: Ich habe keine Probleme mit Alkohol ...
    ... nur ohne :-)

    Kommentar


    • #3
      interessant

      Danke für deine Antwort.

      Es sollen sich mehrere Länder anmelden können, aber auch noch PLZ abfragen funktionieren + Sortierungen.

      Wie machen das die großen Flirt-Portale?

      Wie gehe ich da vor, dass ich beides gewährleiste?

      Bei einem VARCHAR plz Feld könnte ich ja einen int Cast machen, doch wenn auch Buchstaben da drinne sind?
      Welche Länder haben denn Buchstaben in der PLZ?

      Denke Deutschland, Österreich, Schweiz und Niederlande wären ausreichend.

      Kommentar


      • #4
        Original geschrieben von schmalle

        Bei PLZ kommt es auf mehrere Dinge an. Willst Du z.B. verschiedene Länder zulassen, brauchst Du evtl. auch Buchstaben in dem feld. Sprich ein VARCHAR Feld ist angebracht. [color=blue]Willst aber z.B. nach den PLZ sortieren, sollte es ein INT Feld sein[/color] ...
        denke an die PLZ in den neuen Bundesländern
        INT lässt keine führende 0 zu.

        Kommentar


        • #5
          Original geschrieben von asp2php
          denke an die PLZ in den neuen Bundesländern
          INT lässt keine führende 0 zu.
          Gibt es hier Ossis *umschau* .... egal
          h.a.n.d.
          Schmalle

          http://impressed.by
          http://blog.schmalenberger.it



          Wichtige Anmerkung: Ich habe keine Probleme mit Alkohol ...
          ... nur ohne :-)

          Kommentar


          • #6
            oh ja

            danke @ asp2php

            hast du denn auch nen lösungsvorschlag oder wer anders, wie würdet ihr das machen, wenn ihr ne community aufbauen wolltet (inkl. neues Bundesländer und andere Länder außer Deutschland)?

            Kommentar


            • #7
              Char(5)
              Wer immer nur tut was er kann lernt nie was neues.

              Kommentar


              • #8
                Bist du Sicher, dass die PLZ aller Länder der Welt max. 5 stellig ist

                Kommentar


                • #9
                  fünfstellig sind nicht alle!

                  doch es gibt noch eine andere frage: wie will mein ein between bei zwei plz von typ varchar machen?

                  oder vergleiche

                  where plz < 69999 AND > 39999 ???

                  geht das, wenn plz ein varchar ist?

                  Kommentar


                  • #10
                    bei character gilt:

                    10 < 2 : true

                    d.h. es werden stellenweise verglichen, wenn die String-Zahl gleiche Stellenanzahl hat, dann kannst du wie Zahlen vergleichen, sonst nicht.

                    Kommentar


                    • #11
                      und wie mache ich das jetzt am besten für eine große community?

                      Kommentar


                      • #12
                        indem du z.B. die PLZ mit dem Land (z.B. land_id als Zusatzspalte) koppelst, denn innerhalb eines Landes sollte die Anzahl der Ziffer der PLZ schon gleich sein.
                        Oder per bei order by mit cast/convert arbeiten.

                        Kommentar


                        • #13
                          Original geschrieben von Svenner
                          und wie mache ich das jetzt am besten für eine große community?
                          Na da hast doch nun alle Infos um ne Entscheidung zu treffen:

                          Int fällt raus, weil du damit die neuen Bundesländer in Deutschland nicht hast --> Varchar
                          Dann schaust du welche Länder du so unterstützen willst --> raussuchen was die längste PLZ sein könnte und so die Feldlänge wählen

                          Bei der kompletten Sortierung nach PLZ besteht wohl das Prob, dass sie unterschiedlich lang sind ... aber es ist eigentlich eh unsinnig alle PLZ ohne Einschränkung zu sortieren, da es mir gar nix bringt wenn bei der Ausgabe die PLZ 01234 und 01235 untereinander stehen, aber aus unterschiedlichen Ländern kommen. Also sollte da eh noch ein Sortierkriterium nach Land vorangestellt werden --> und schwupp is das Prob verschwunden, weil in einem Land alle PLZ die gleich Länge haben
                          [color=red]Geht nicht[/color] ist keine Fehlermeldung

                          Kommentar


                          • #14
                            super ...

                            danke für euren tollen tipps und die diskussion über mein prob.

                            habe eh schon ne extra tabelle laender und bundeslaender.

                            mache jetzt ein VARCHAR(10) um auf nummer sicher zu gehen und dann nehme ich die einschränkung des landes hinzu.

                            vielen Dank nochmal!!!

                            Kommentar


                            • #15
                              PLZ mit INT(5)

                              PHP-Code:
                              if ($row['plz']<10000){$plz="0".$row['plz'];}
                              else {
                              $plz=$row['plz'];} 
                              Wie wäre das? Dann kannst du auch den between machen, da es ja egal ist ob vorne ne 0 steht oder nicht der absolute Wert ist schließlich gleich.
                              Wer immer nur tut was er kann lernt nie was neues.

                              Kommentar

                              Lädt...
                              X