Seite 1 von 2
n:m Beziehung
Verfasst: Mi 10. Dez 2014, 23:51
von Freitag
Wie lege ich die Relationen für eine n:m Beziehung zweier Tabellen an?
In der 1. Tabelle sind Personen gespeichert. In der 2. Tabelle sind Getränke gespeichert. Jede Person kann 0, 1 oder 2 verschiedene Lieblingsgetränke haben. In einer Abfrage möchte ich alle Personen mit ihren Lieblingsgetränken sehen.
Es wird wohl eine zusätzliche Tabelle mit 2 Schlüsseln benötigt. Ich habe einige ähnliche Beispiele gefunden, bei meinem Beispiel funktioniert aber keines.
Danke für Hilfe
Re: n:m Beziehung
Verfasst: Do 11. Dez 2014, 08:05
von RobertG
Hallo Freitag,
das hast Du doch schon ganz richtig durchschaut:
3. Tabelle, die die Primärschlüssel aus beiden anderen Tabellen als gemeinsamen Primärschlüssel hat. Vielleicht noch daszu ein Feld, bei dem die Wahlen gestuft werden können (Reihenfolge).
Für die Eingabe steht im Hauptformular die Person, im Unterformular die Tabelle mit beiden Schlüsseln. Im Unterformular nimmst Du ein Tabellenkontrollfeld, damit Du mehrere Daten immer im Blick hast. Das Getränk wird dann über ein Listenfeld in diesem Tabellenkontrollfeld ausgesucht.
Gruß
Robert
Re: n:m Beziehung
Verfasst: Do 11. Dez 2014, 13:06
von Freitag
Danke Robert!
Ich will das vorerst ohne Formulareingabe machen. Eine Abfrage soll mir dann die Vorlieben der Personen zeigen. Was mache ich falsch?
Gruß - Freitag
Re: n:m Beziehung
Verfasst: Do 11. Dez 2014, 13:18
von boser
Ich kann das zip-Archive wegen des Ä nicht entpacken, bitte nochmal packen, ohne Ä.
Re: n:m Beziehung
Verfasst: Do 11. Dez 2014, 13:28
von Freitag
Entschuldigung!
Freitag
Re: n:m Beziehung
Verfasst: Do 11. Dez 2014, 13:33
von boser
Schau dir das mal an.
Schnell was nach meinen vorstellungen zusammen gebastellt.
Die Abfrage zeigt das ergebnis.
Re: n:m Beziehung
Verfasst: Do 11. Dez 2014, 13:38
von boser
Nein, so geht es nicht. Wie du es gemacht hast, schau dir mein Beispiel an. Du hast die ID Persopn mit der ID Gertänk verbunden.
Re: n:m Beziehung
Verfasst: Do 11. Dez 2014, 14:11
von Freitag
Danke Boser!
Geanau so wollte ich es. Und es geht auch mit alkoholischen Getränken. Mein Fehler war, dass ich mich wegen der Beispiele, die ich gefunden hatte auf 2 Schlüssel in der Extratabelle versteift hatte.
weitere Fragen werden folgen - Freitag
Re: n:m Beziehung
Verfasst: So 21. Dez 2014, 15:02
von Freischreiber
Hallo,
zu der Zwischentabelle bei n:m-Beziehungen habe ich noch eine Frage:
Bei einer 1:n-Beziehung kann ich der zweiten Tabelle vorschreiben, daß jeder Datensatz einen Fremdschlüssel der ersten Tabelle enthalten muß (Eingabe erforderlich). Wie mache ich das, wenn ich zwei Tabellen mit einer Zwischentabelle verbinde?
Wenn ich z. B. Aufträge anlege und sicherstellen will, daß zu jedem Auftrag gleich mindestens ein Auftraggeber vorhanden sein muß?
Gruß
Freischreiber
Re: n:m Beziehung
Verfasst: So 21. Dez 2014, 15:54
von RobertG
Hallo Freischreiber,
eine n:m-Beziehung kannst Du nur von der die beiden Ursprungstabellen verbindenden Tabelle her absichern. Wenn Du also zu einem Auftrag mindestens einen Auftraggeber brauchst dann wäre das nur dann auflösbar, wenn Du bei der Eingabe mit den Auftraggebern anfängst, von diesen den Fremdschlüssel beziehst und einen zweiten Schlüsselwert für die Aufträge explizit in der Verbindungstabelle vergibst. Erst wenn der Schlüssel in der Verbindungstabelle existiert darf dann auch ein Auftrag erstellt werden. Das Primärschlüsselfeld für den Auftrag ist also auf keinen Fall ein Autowert-Feld.
Existiert erst der Auftrag so hast Du keine Chance eine entsprechende Beziehung aufzubauen.
Das Ganze ist also abhängig vom Aufbau des Formulars, kann auch noch über Makros weiter abgesichert werden, nicht aber über die Datenbankeinstellungen. Für die existieren die beiden Tabellen, die in der Beziehungstabelle zusammengefügt werden, erst einmal unabhängig voneinander.
Gruß
Robert