Benutzertabelle Struktur

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

  • Benutzertabelle Struktur

    Hallo Leute,

    Bin neu hier.

    Hab da schon meine erste frage, zu meiner Tabellenstruktur.

    Ich habe folgende Tabellen:

    users: id, email, password, active

    userdatas: id, user_id, firstname, lastname, country, ....

    Ist meine vorstellung so richtig, oder sollte ich alle daten des benutzers in nur eine tabelle speichern?

    Und dann hab ich noch eine frage.
    Unter welchem typ sollte ich das geburtsdatum speichern, ich möchte aber über eine suche leute nach dem alter suchen.
    Wie geht das?

    Vielen Dank,
    mfg paul

  • #2
    Hm ... also ich handhabe es so, dass ich alle Userdaten in einer Tabelle speichere. Natürlich kommen hier auch Redundanzen zu Stande. Wohnorte, Länder, etc. könnte man rein theoretisch auch auslagern bzw. normalisieren. Aber gerade an einer User-Tabelle kann man sich aus meiner Sicht tot-normalisieren.

    Das Geburtsdatum sollte im Format DATE gespeichert werden. Anhand der Zeit- und Datumsfunktionen der Datenbank kannst Du dann später auch das Alter ermitteln.
    MM Newmedia | MeinBlog

    Kommentar


    • #3
      Hallo,

      pack die Daten einfach in eine Tabelle und fertig (warum Passwort und Benutzername trennen?).
      In Bezug auf das Geburtsdatum würde ich in Deinem Fall den Timestamp speichern ... als Typ INT(11) und fertig, dann kannste danach suchen/ vergleichen etc.!

      Zum Darstellen des Alters kannst Du dann später eine Funktion schreiben ... sowas wie das hier:
      PHP-Code:
      function datumswandler($stringint)
      {    
          
      /*keine Ganzzahl!*/
          
      if (!is_numeric($stringint))
          {                
              
      /*---- string zu timestamp --> 1230127200*/
              
              
      $suchmuster '!(\d+)\.(\d+)\.(\d+)!i';
              
      $tag '\\1';
              
      $tag preg_replace($suchmuster,$tag,$stringint);
              
      $suchmuster '!(\d+)\.(\d+)\.(\d+)!i';
              
      $monat '\\2';
              
      $monat preg_replace($suchmuster,$monat,$stringint);
              
      $suchmuster '!(\d+)\.(\d+)\.(\d+)!i';
              
      $jahr '\\3';
              
      $jahr preg_replace($suchmuster,$jahr,$stringint);

              
      $timestamp mktime(0,0,0,$monat,$tag,$jahr);
              
              return 
      $timestamp;
          }
          else
          {            
              
      /*---- timestamp zu string --> 24.05.1965*/
              
      $date date("d.m.Y"$stringint);
              return 
      $date;
          }

      Aber warte noch auf weitere Kommentare ... da kommt bestimmt noch eine bessere Meinung !

      Gruß php_fussel

      EDIT:
      Schon passiert ...

      Kommentar


      • #4
        Original geschrieben von php_fussel
        ...
        In Bezug auf das Geburtsdatum würde ich in Deinem Fall den Timestamp speichern ... als Typ INT(11) und fertig, dann kannste danach suchen/ vergleichen etc.! ...
        Wenn du mit Timestamp einen PHP-Timestamp meinst: Davon würde ich abraten, falls der Webmaster nicht absichtlich "ältere" Menschen ausschließen will. Nicht alle vor 1970 Geborenen sind schon tot.
        Klingon function calls do not have “parameters”‒they have “arguments”‒and they always win them!

        Kommentar


        • #5
          Die Hollywood-Stars würden ihn für so eine Datenbank lieben ... Spaß beiseite, so gesehen hast Du natürlich vollkommen Recht .. daher ist DIES für das Geburtsdatum die passende Wahl !

          Gruß php_fussel

          Kommentar

          Lädt...
          X