Supportnet Computer
Planet of Tech

Supportnet / Forum / Windows2000

m:n Beziehung in Access





Frage

Hallo zusammen. Ich hoffe das mir hier jemand weiterhelfen kann. Ich brauche dringend eine Definition warum Access selbst keine m:n Beziehungen erstellen kann. Hab mich schon in anderen Foren umgesehen doch dort wird das auch nur am Rande beschrieben! Danke schon mal im voraus.

Antwort 1 von Toadie

m:n Beziehungen funktionieren nur über Zwischentabellen, da beide Seiten mehrfach vorkommen können.

Wenn du wie bei einer 1:n Beziehung den Primärschlüssel der 1-Entität als Fremdschlüssel der n-Entität verwenden würdest, dann müsstest du in der einen Tabelle Daten mehrfach anlegen um eine m:n Bezeihung zu erhalten. Das Risiko das sich Fehler in die Datenbank einschleichen steigt.

Beispiel:
------------
Ein Lehrer hat mehrere Schüler, ein Schüler hat mehrere Lehrer.

Lehrer m:n Schüler

Der Primärschlüssel aus Tabelle Lehrer wird Fremdschlüssel in Tabelle Schüler. Schülerdatensätze sehen dann z.B. so aus:

1;Mustermann;Hans;Musterort;Müller
2;Mustermann;Hans;Musterort;Schäfer
3;Mustermann;Hans;Musterort;Roller
...

Musst du jetzt einen Schüler erfasse, löschen oder Daten ändern stehst du vor dem Problem, dass du die selben Änderungen für jeden einzelnen Eintrag zu diesem Schüler machen musst. Aufnehmen kannst du so einen Schüler auch nur, wenn bereits ein Lehrer vorhanden ist.

Antwort 2 von 2fast

Ok, wenn ich dich richtig verstanden habe kann Access also keine m:n Beziehungen herstellen, da dazu Daten (in "einer" Tabelle) mehrfach angelegt werden müssten und Access damit Schwierigkeiten hat.
Ist das so richtig?

Antwort 3 von Toadie

Nein so direkt nicht. M:N Beziehungen sind schon möglich nur kann man keine M:N Beziehung mit nur 2 Tabellen realisieren. Man muss zu den bestehenden zwei Tabellen eine dritte Detailtabelle erstellen in der die verknüpfung der beiden Mastertabellen realisiert wird.

Im obigen Beispiel sieht das folgendermaßen aus:

Mastertabellen:
Schüler(SchülerID, Name, Vorname, Ort)
Lehrer(LehrerID, Name, Vorname, Ort)

Detailtabelle:
Unterricht(SchülerID, LehrerID)

In der Detailtabelle sind die beiden Primärschlüssel der Mastertabellen als Fremdschlüssel vorhanden. In der Detailtabelle ist ein zusätzlicher Primärschlüssel nicht nötig. Hier wird der Primärschlüssel aus den beiden Fremdschlüsseln zusammengesetzt. Man kann aber auch hier einen weiteren Primärschlüssel aufnehmen wenn man das will.

Antwort 4 von Toadie

Zitat:
...kann Access also keine m:n Beziehungen herstellen, da dazu Daten (in "einer" Tabelle) mehrfach angelegt werden müssten und Access damit Schwierigkeiten hat.


Access selbst hat damit auch keine Schwierigkeiten aber es ist nicht sinnvoll so vorzugehen. Dadurch würden sich Fehler einschleichen und man hätte wesentlich mehr Aufwand beim bearbeiten der Datenbank.

M:N Beziehungen werden in keiner Datenbank mit nur zwei Tabellen realisiert. Es wird immer eine Detailtabelle verwendet.

Antwort 5 von 2fast

ja schon klar aber es muss doch auch noch einen anderen Grund, außer dass ein erhöhtes Fehlerrisiko besteht, geben warum man Zwischentabellen (Detailtabellen) anlegt und nicht die m:n Beziehung über 2 Tabellen anfertigt.
Im Beziehungsmenü kann ich ja auch nur 1:n Beziehungen herstellen. Zwischen den Tabellen selbst steht dann 1...............unendlich und nicht z. B. unendlich.................unendlich. Ich hab zu mindest so was noch nicht gesehen!

Antwort 6 von Toadie

Ja das geht auch nicht. Im Grunde währe die Lösung mit den zwei Tabellen wie in Antwort 1 auch keine m:n Beziehung sondern eine 1:N mit Redundanten Daten. Es hätte die selbe Wirkung ist aber mist.

1:1 und 1:N werden in Access dargestellt, M:N nicht. Zwei Mastertabellen über eine Detailtabelle mit 1:N zu verknüpfen bildet eine M:N Beziehung. Anders sind M:N Tabellen nunmal nicht realisierbar. Nicht in Access noch in Filemaker oder SQL.

Antwort 7 von 2fast

alles klar, danke für das posting!

Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: