Achim: Frage zu ER-Diagram

Hallo,
ich bin neu hier und hoffe auf eure Hilfe.
Bin nicht soo fit im Thema Datenbanken. Habe folgende Problemstellung und mir folgendes ER-Diagramm dafür überlegt:

Ich habe in neinem Baumarkt mehrere Personen (Marktleiter, Leiter Wareneingang und Leiter Baustoffe). Diese haben natürlich einen Namen, Telefon, Handy, Fax und Email. Teils mehrere (also z.B. mehrere Emailadressen oder Nummern). Nun habel ich überlegt 3 Tabellen zu nehmen:

  • Kontaktpersonen(KontaktID, FilialID, Position, Name)
  • Emailadressen(KontaktID, FilialID, Adresse)
  • Kontaktdaten(KontaktID, FilialID, Nummer, Typ)

_mit Position meine ich: Marktleiter, Leiter Wareneingang oder Leiter Baustoffe
_mit KontaktID den Primärschlüssel von Kontaktpersonen
_mit FilialID den Primärshlüssel von dem Baumarkt
_Typ meine ich Telefon, Mobil, Fax

Eigentlich müßte ich doch so die dritte Normalform haben, oder ? Kann ich das so machen, oder habe ich einen Denkfehler, bzw. empfiehlt sich eine andere Anordnung/Aufbau ?

Wäre für jeden Tip dankbar.
Liebe Grüße,
Achim

    • Kontaktpersonen(KontaktID, FilialID, Position, Name)
    • Emailadressen(KontaktID, FilialID, Adresse)
    • Kontaktdaten(KontaktID, FilialID, Nummer, Typ)

    Du hast wohl eine Tabelle Kontaktpersonen, eine Filialen und was noch? Haben Kontaktpersonen mehrere Emailadressen und mehrere "Kontaktdaten"? Da würde ich mir mal etwas anderes einfallen lassen.

    Zudem scheint mir die Fremdschlüsselkombination "KontaktID+FilialID" Murks, ein Fremdschlüssel reicht doch.

    Eigentlich müßte ich doch so die dritte Normalform haben, oder ?

    Las mal diese Normalisierungsregeln bis auf weiteres aussen vor und kümmere Dich primär um die beteiligten Wesen.

    1. mmh, das habe ich vergessen zu erwähnen, es gibt mehrere Filialen, also mehrere Baumärkte für die das oben genannte Szenario gilt. deshalb die beiden Schlüssel..

    2. hallo fifo,
      ja richtig, ich habe eine Tabelle mit Filialen, eine Tabelle mit Kontaktpersonen und noch ein paar andere. Das Problem ist wie du richtig erkannt hast, dass eine Person mehrere Emailadressen oder Telefonnummer haben kann, deshalb wollte ich die Tabellen aufsplitten und habe eine extra für Emailadressen und Telefonnummern gemacht.
      Mein Problem besteht darin, dass ich für die Kontaktperson ja auch noch wissen muß in welcher Filiale sie arbeitet. Deshalb hatte ich noch die FilialID mit in der Tabelle..
      oder hab ich einen Denkfehler?

      1. Mein Problem besteht darin, dass ich für die Kontaktperson ja auch noch wissen muß in welcher Filiale sie arbeitet. Deshalb hatte ich noch die FilialID mit in der Tabelle..

        Das ist schlechtes Design, Du hast Filialen---1:n---Mitarbeiter---1:n---Kontakte, das sollte schon korrekt verzeigert werden, also keinesfalls in Kontakte einen Zeiger auf die Filiale. Die Filiale kriegst Du auf dem Weg Kontakt->MA->Fil. heraus.

    • Kontaktpersonen(KontaktID, FilialID, Position, Name)
    • Emailadressen(KontaktID, FilialID, Adresse)
    • Kontaktdaten(KontaktID, FilialID, Nummer, Typ)

    Wozu brauchst Du bei den Emailadressen und Kontaktdaten die Filial-ID? Ist die KontaktID nicht für alle Personen eindeutig? Nebenbei: sollte "Kontaktdaten" vielleicht lieber "Telefonnummern" heissen?

    Wenn die KontaktID der alleinige Schlüssel für Kontaktpersonen ist, dann schmeiss die FilialIDs aus den Emailadressen und Kontaktdaten raus. Dann sehe ich auch nix mehr was die dritte Normalfprm verletzt.