Neuigkeiten:

Ist euer Problem gelöst, dann bitte den Knopf "Thema gelöst" drücken!

Mobiles Hauptmenü

m:n-Beziehung

Begonnen von girly05, März 18, 2015, 12:34:06

⏪ vorheriges - nächstes ⏩

girly05

Hallo, bitte nicht die Augen verdrehen!
in meiner Datenbank taucht der Herr Schneider mit 3 Telefonnummern und 2 eMailadressen in einer einzigen Tabelle auf. Diesen Fehler möchte ich nun korrigieren, d.h. es wird 2 weitere Tabellen für Auflösung dieser m:n-Beziehung geben (siehe Beispiel). Der Herr Schneider hat mehrere Aufgabengebiete, wobei er pro Projekt ein Gebiet davon ausfüllt. Wo bringe ich diese Information unter und was mache ich, wenn es noch einen weiteren Herr Schneider mit anderen Telefonnummern gibt? Seht euch bitte dazu meine Testdatenbank an, Eintragungen insbesondere im Beziehungsfenster wären sehr hilfreich, ich steh da wirklich auf dem Schlauch. Vielen Dank schonmal.
Liebe Grüße, Girly

girly05

Hi, ich nochmal. Wahrscheinlich denke ich falsch. Wie verarbeitet Ihr die Kontaktdaten, wenn mehrere Telefon- und/oder Maildaten pro Person vorhanden sind? Kommen diese Daten dann in zusätzliche Tabellen nach dem Motto tblTelefon1, tblTelefon2 usw.? Zumal dieser eine Bearbeiter je nach Projekt verschiedene Aufgaben hat und ein anderer Bearbeiter denselben Nachnamen (Vorname unbekannt) hat.
Liebe Grüße, Girly

el_gomero

Hallo,

alles wo eine Nummer angehängt wird
Zitat
...  tblTelefon1, tblTelefon2 ...
schreit nach Normalisierung.

Die Kontaktarten (Tel, Mobil, email usw) gehören in eine Tabelle und die Zugangsdaten (Tel-Nr, Handy-Nr, mail-Adresse usw) in eine weitere. Über die ID werden die Tabellen verbunden und Kontaktart korrespondiert mit der Personentabelle. Damit kannst du alles abbilden, auch wenn eine Person mehrere Telefonnummern, mail-adressen und sonstwas hat.

hth
Gruß
Jürgen


Hilfe nach bestem Wissen, ohne Anspruch auf Richtigkeit und Vollständigkeit.
*feedback erwünscht*
Bitte Tipps lesen

girly05

Danke el_gomero für Dein Feedback.
Ich hab jetzt die Tabellenstruktur geändert und als Bild angehängt. Ist das so Ok oder verstecken sich darin noch Fehler?
Wie erhalte ich jetzt den Zusammenhang, daß der Herr Schneider im Projekt 1 die Aufgabe 1 erfüllt und im Projekt 2 die Aufgabe 2?
Liebe Grüße, Girly

MzKlMu

#4
Hallo,
die Tabelle "tblNachname" ist übertrieben normalisiert. Den Nachnamen kannst Du direkt in der Tabelle "tblBearbeiter" packen.

Die Tabelle "tblKontaktinhalte" scheint mir auch überflüssig. Kontaktinhalt direkt in die Tabelle "tblKontakte".

Oder beschreibe mal die Inhalte.

ZitatWie erhalte ich jetzt den Zusammenhang, daß der Herr Schneider im Projekt 1 die Aufgabe 1 erfüllt und im Projekt 2 die Aufgabe 2?
mit diesen Beziehungen gar nicht. Wenn der Barbeiter der Aufgaben am Projekt hängt, ist die Tabelle "tblBearbeiter2 Aufgaben nicht notwendig und der Fremdschlüssel "AufgabenID_Ref" gehört zusätzlich in die Tabelle "tblProjektBearbeiter", um die Aufgaben einem Projekt und einem Bearbeiter zuordnen zu können.
Gruß Klaus

girly05

Hallo MzKiMu,
die Nachnamen dachte ich in eine extra Tabelle, weil es ja bestimmte Namen gibt, die häufiger vorhanden sind, z.B. Schneider, Müller o.ä.
Die Kontaktinhalte sind z.B. TelefonNr, FaxNr usw., wobei sich oftmals mehrere Bearbeiter eine FaxNr teilen. Wo beginnt eine übertriebene Normalisierung?
Es gibt Projekte, wo der Herr Schneider mehrere Aufgaben erfüllt und andere Projekte, wo er nur eine Aufgabe hat. Deshalb die m:n-Tabelle tblProjekteBearbeiter.
Der Eintrag AufgabenID_Ref in der tblBearbeiter ist bereits gelöscht.
Liebe Grüße, Girly

MzKlMu

#6
Hallo,
Zitatdie Nachnamen dachte ich in eine extra Tabelle, weil es ja bestimmte Namen gibt, die häufiger vorhanden sind, z.B. Schneider, Müller o.ä.
das ist für mich übertrieben. Den Aufwand für die Nachnamen eine extra Tabelle zu führen würde ich nicht treiben.

ZitatDer Eintrag AufgabenID_Ref in der tblBearbeiter ist bereits gelöscht.
Du kannst auch die Tabelle löschen. Da ein Bezug zum Projekt erforderlich ist, der aber nicht da ist. Also Tabelle raus und Fremdschlüssel Aufgaben in die Tabelle "tblProjekteBearbeiter". Und dann wäre ein sinnvoller Name ""tblProjekteAufgabenBearbeiter", oder kürzer "tblProjAufgBearb".

ZitatDie Kontaktinhalte sind z.B. TelefonNr, FaxNr usw.,
Die Tabelle brauchst Du nicht. Wie bereits gesagt gehört der Kontaktinhalt direkt in die Tabelle "tblKontakte". "tblKontaktInhalte" kannst Du ersatzlos löschen.
Gruß Klaus

girly05

Hallo MzKIMu,
danke für Deine Hilfe. ich hab das ganze jetzt mal geändert, muß aber gestehen, daß ich noch nicht richtig dahintersteige. Vielleicht am Wochenende. Sollte ich in der tblProjekteBearbeiterAufgaben einen Index über die 3 Fremdschlüssel erstellen?
Liebe Grüße, Girly

MzKlMu

Hallo,
die Beziehung zwischen Bearbeiter und Kontakt ist falsch rum, siehe Bild.
KontakID_Ref dann löschen.
Gruß Klaus

girly05

Danke, ich glaube mir geht langsam ein Licht auf.
Man steh ich diesbezüglich auf der Leitung! Wie sieht das mit dem Index aus?
Liebe Grüße, Girly

MzKlMu

Hallo,
ja, das scheint so zu passen.
Das mit dem Index kannst Du machen. Aber nicht als Primärschlüssel (der bleibt) sondern als zusammengesetzter eindeutiger Index über die 3 Fremdschlüsselfelder.
Gruß Klaus

girly05

Hallo Klaus,
danke für Deine große Hilfe :)! Ich wurstel jetzt mal wieder allein weiter, bis zum nächsten Mal.
Gibt es hier im Forum eigentlich einen Danke-Button?
Liebe Grüße, Girly

MaggieMay

Hallo,
ZitatGibt es hier im Forum eigentlich einen Danke-Button?
Ja, den gibt es und er dürfte auch nicht allzu schwer zu finden sein.
Freundliche Grüße
MaggieMay

girly05

Hallo MaggieMay,
sorry für meine Blindheit!!!
Nichts für ungut, auch bescheuerte Frage können nett beantwortet werden
Liebe Grüße, Girly

MaggieMay

Ok, ich hätte einen Screenshot mit einem dickel Kringel hochladen können,
aber nun hast du ihn ja auch so gefunden. ;-)
War durchaus nicht unfreundlich gemeint.
Freundliche Grüße
MaggieMay