Brauche Hilfe/Unterstützung bei Normalisierung einer DB

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Brauche Hilfe/Unterstützung bei Normalisierung einer DB

    Hallo ....

    habe ein kleines Prob mit der Normalisierung einer Datenbank....hoffe ihr könnt mir da weiterhelfen um die DB in die 3.Normalform zu bringen...

    also bisher habe ich die DB-Struktur wie folgt aufgebaut...allerdings ist das ja sicherlich noch nicht in der 3.Normalform...wie die 3 Normalformen lauten wieß ich auch...habe aber speziell bei dieser DB das Problem sie dahingehen aufzulösen, dass die Struktur der 3.Normalform entspricht...

    hoffe hier finden sich einige, die mir bei diesem Problem helfen können Dank im Voraus...

    Quellcode

    1. CREATE TABLE ADDRESS
    2. (
    3. ID INT(11) unsigned NOT NULL auto_increment,
    4. Firma VARCHAR(32) NOT NULL,
    5. Name VARCHAR(32) NOT NULL,
    6. Vorname VARCHAR(32) NOT NULL,
    7. Strasse VARCHAR(32) NOT NULL,
    8. Haus_Nr VARCHAR(6) NOT NULL,
    9. PLZ INT(5) NOT NULL,
    10. Ort VARCHAR(32) NOT NULL,
    11. Telefon VARCHAR(32),
    12. Fax VARCHAR(32),
    13. Mobile VARCHAR(32),
    14. PRIMARY KEY (ID)
    15. );
    16. CREATE TABLE USERS
    17. (
    18. ID int(11) unsigned NOT NULL auto_increment,
    19. Autologin VARCHAR(32) NULL,
    20. IP VARCHAR(15) NOT NULL,
    21. SessionID VARCHAR(32) NOT NULL,
    22. UserNick VARCHAR(32) NOT NULL,
    23. UserPwd VARCHAR(32) NOT NULL,
    24. UserMail VARCHAR(70) NOT NULL,
    25. Reg_Date DATE NULL,
    26. Last_Login INT NOT NULL DEFAULT '0',
    27. Last_Action INT NOT NULL DEFAULT '0',
    28. Activate VARCHAR(32),
    29. PRIMARY KEY (ID),
    30. Foreign Key (ID) references ADDRESS(ID),
    31. UNIQUE (UserNick, UserMail)
    32. )
    Alles anzeigen
  • Puh. Is schon etwas länger her, dass ich mal mit Normalformen gearbeitet hab, aber was mir aufgefallen ist:

    Ist PLZ / Ort nicht konsistent?

    Also Ich kann ne PLZ eingeben, die nicht unbedingt zu einem Ort gehört.

    Dann muss man noch wissen, ob eine Firma mehrer Adress Einträge haben kann. Wenn nein, dürfte das so in Ordnung sein.

    Ansonsten sieht das doch meiner Meinung nach ganz gut aus.
  • Wenn mehrere Leute in derselben Firma arbeiten, entsteht Datenredundanz. Das angesprochene Ort/PLZ ist auf jedenfall auch ein Problem, dabei ist es egal ob das konsistent ist (ich glaube allerdings, das Postfächer und große Firmen eigene PLZ haben können, auf jedenfall aber hat ein Ort mehrere PLZ). Wenn mehrere Leute aus dem gleichen Ort kommen, speicherst du den Namens des Ortes mehrfach ab -> Datenredundanz!

    Weiterhin würde ich überlegen Sachen wie Last Login, Last Action und auf jedenfall SessionID auszulagern, weil du da unverhältnismäßig viel mehr mit arbeitest, als dem Rest und es performanter sein kann, wenn die eine eigene Tabelle haben.

    Noch eine Frage wieso hast du USERS->ID als Fremdschlüssel angegeben und nicht ADDRESS->ID
    ~ mfg SeBa

    Ich beantworte keine PMs zu Computer-/Programmierproblemen. Bitte wendet euch an das entsprechende Forum.

    [Blockierte Grafik: http://i.creativecommons.org/l/by-sa/3.0/80x15.png]