Create Table Syntax - Frage

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

  • Create Table Syntax - Frage

    Hallo! Bin dabei ein paar Tabellen zu erstellen und möchte kurz nachfragen, ob es noch Optimierungen bei der "create table" syntax gibt bzw. ob u.a. vielleicht auch Fehler enthalten sind. Vielleicht passt nicht überall der typ "varchar" oder "mediumint"? Hab das nach meinen besten Wissen versucht. Ob überall dieses "NOT NULL default ''" passt bin ich mir auch nicht sicher. Hier mal die Syntax zur Erstellung der ersten Tabelle:

    PHP-Code:
    CREATE TABLE USERS (
    USER_ID                mediumint(11PRIMARY KEY auto_increment,
    USER_TIMESTAMP_REGISTER        timestamp(14),
    USER_TIMESTAMP_MODIFICATION    timestamp(14)         NOT NULL default '',
    USER_STATUS            mediumint(2)         NOT NULL default '',
    USER_PASSWORD            varchar(50)         NOT NULL default '',
    USER_SLOGAN            varchar(255)         NOT NULL default '',
    USER_INFO            mediumblob         NOT NULL default '',
    USER_ACCOUNT_NAME        varchar(50)         NOT NULL default '',
    USER_SURNAME            varchar(50)         NOT NULL default '',
    USER_FIRST_NAME            varchar(50)         NOT NULL default '',
    USER_STREET_NR            varchar(100)         NOT NULL default '',
    USER_POSTCODE            mediumint(5)         NOT NULL default '',
    USER_CITY            varchar(100)         NOT NULL default '',
    USER_FEDERAL_STATE        varchar(100)        NOT NULL default '',
    USER_TELEPHONE            varchar(50)         NOT NULL default '',
    USER_MOBILE            varchar(50)         NOT NULL default '',
    USER_FAX             varchar(50)         NOT NULL default '',
    USER_EMAIL             varchar(50)         NOT NULL default '',
    USER_BIRTHDAY            date             NOT NULL default '',
    USER_PHOTOLINK            varchar(150)        NOT NULL default '',
    USER_HOMEPAGE             varchar(100)         NOT NULL default '',
    USER_ICQ            mediumint(20)         NOT NULL default '',
    USER_OTHER_MESSENGER        varchar(100)         NOT NULL default '',
    USER_OTHER_MESSENGER_IDENT    mediumint(20)         NOT NULL default '',
    UNIQUE KEY             ACCOUNT_NAME         (USER_ACCOUNT_NAME),
    UNIQUE KEY             EMAIL             (USER_EMAIL)

    Bin für jeden Tip dankbar. Danke im Voraus!

    -----> SEERED

  • #2
    z.b. USER_ICQ mediumint(20) NOT NULL default '',

    wenn schon mediumint dann wenigstens unsigned.

    evtl. wäre hier auch varchar angebracht. wieso 20?

    Kommentar


    • #3
      Original geschrieben von TobiaZ
      z.b. USER_ICQ mediumint(20) NOT NULL default '',
      wenn schon mediumint dann wenigstens unsigned.


      Hier meine Änderungen. Ich weiß es halt nicht besser. Darum frage ich ja!

      PHP-Code:
      CREATE TABLE USERS (
      USER_ID                tinyint(5)         PRIMARY KEY auto_increment,
      USER_TIMESTAMP_REGISTER        timestamp(14),
      USER_TIMESTAMP_MODIFICATION    timestamp(14)         NOT NULL default '',
      USER_STATUS            tinyint(2)         NOT NULL default '',
      USER_PASSWORD            varchar(50)         NOT NULL default '',
      USER_SLOGAN            varchar(255)         NOT NULL default '',
      USER_INFO            mediumblob         NOT NULL default '',
      USER_ACCOUNT_NAME        varchar(50)         NOT NULL default '',
      USER_SURNAME            varchar(50)         NOT NULL default '',
      USER_FIRST_NAME            varchar(50)         NOT NULL default '',
      USER_STREET_NR            varchar(100)         NOT NULL default '',
      USER_POSTCODE            mediumint(5)         NOT NULL default '',
      USER_CITY            varchar(100)         NOT NULL default '',
      USER_FEDERAL_STATE        varchar(100)        NOT NULL default '',
      USER_TELEPHONE            varchar(50)         NOT NULL default '',
      USER_MOBILE            varchar(50)         NOT NULL default '',
      USER_FAX             varchar(50)         NOT NULL default '',
      USER_EMAIL             varchar(50)         NOT NULL default '',
      USER_BIRTHDAY            date             NOT NULL default '',
      USER_PHOTOLINK            varchar(150)        NOT NULL default '',
      USER_HOMEPAGE             varchar(100)         NOT NULL default '',
      USER_ICQ            mediumint(20)        UNSIGNED,
      USER_OTHER_MESSENGER        varchar(100)         NOT NULL default '',
      USER_OTHER_MESSENGER_IDENT    mediumint(20)         UNSIGNED,
      UNIQUE KEY             ACCOUNT_NAME         (USER_ACCOUNT_NAME),
      UNIQUE KEY             EMAIL             (USER_EMAIL)

      evtl. wäre hier auch varchar angebracht. wieso 20?
      20: Wegen der Länge der ICQ Nummern?! Oder genügt 10 oder 5? Ich weiß es halt nicht!



      -------> SEERED

      Kommentar


      • #4
        guck am besten mal ins mysql_maual. da stehen ja alle feldtypen drin. da kannste dann mal vergleichen.

        Kommentar


        • #5
          Ich schau mir dauernd schon Seiten wie http://dev.mysql.com/doc/mysql/de/CREATE_TABLE.html an und alle anderen in diesem Zusammenhang. Jetzt komm ich nicht weiter und darum frage ich hier nach. Ist es so, dass ich mit keiner näheren Hilfe rechnen kann?

          ----------> SEERED

          Kommentar


          • #6
            Es geht hier primär um die Feldtypen. Deine Select Syntax sind ja korrekt, sonst würde deine query schließlich nicht funktionieren.

            guck dir in dem zusammenhang also http://www.mysql.com/doc/en/Column_types.html genauer an.

            wenn ich hier von jedem die tabellenstruktur nach besten gewissen beurteilen/verbessern müsste, würde ich sicher nicht nachkommen.

            bei konkreten fragen erhälst du aber sicher auch ne konkrete hilfestellung.

            Ist es so, dass ich mit keiner näheren Hilfe rechnen kann?
            Wenn du damit allerdings ausdrücken willst, dass dir hier nicht geholfen wurde, dann hat sich die sache ohnehin erledigt.

            Kommentar


            • #7
              Original geschrieben von TobiaZ
              bei konkreten fragen erhälst du aber sicher auch ne konkrete hilfestellung.
              Meine konkrete Frage ist dann zb folgende:

              schreibt man:
              USER_POSTCODE smallint(5) NOT NULL default '',

              oder besser:
              USER_POSTCODE smallint(5) UNSIGNED NOT NULL default '',

              oder:
              USER_POSTCODE smallint(5) UNSIGNED ZEROFILL NOT NULL default '',

              oder:
              USER_POSTCODE smallint(5) ZEROFILL NOT NULL default '',

              Kann natürlich auch alles nicht 100pro sein ....

              Wenn du damit allerdings ausdrücken willst, dass dir hier nicht geholfen wurde, dann hat sich die sache ohnehin erledigt.
              Nein, das habe ich nicht gemeint. Ich wollte halt nur sowas lesen wie du oben geschrieben hast: "bei konkreten fragen erhälst du ... " Also, alles gut ...

              Kommentar

              Lädt...
              X