🙏 Helfen Sie jetzt mit, unser LibreOffice Forum zu erhalten! 🙏
Mit Ihrer Spende sichern Sie den Fortbestand, den Ausbau und die laufenden Kosten dieses Forums. 🌱
🍀 Jeder Beitrag zählt – vielen Dank für Ihre Unterstützung!🍀
>> Dank Ihrer Unterstützung -> Keine Werbung für alle registrierten LibreOffice-Forum User! <<
🤗 Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet. 🤗
n:m Beziehung
n:m Beziehung
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
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
mit beträchtlichem Gruß
opensuse 15.2 - NAS
opensuse 15.2 - NAS
Re: n:m Beziehung
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
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
https://de.libreoffice.org/get-help/documentation/
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=base_handbuch
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=xml_formulare
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=base_handbuch
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=xml_formulare
Re: n:m Beziehung
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
Ich will das vorerst ohne Formulareingabe machen. Eine Abfrage soll mir dann die Vorlieben der Personen zeigen. Was mache ich falsch?
Gruß - Freitag
- Dateianhänge
-
- Lieblingsgetränk.zip
- (4.27 KiB) 227-mal heruntergeladen
mit beträchtlichem Gruß
opensuse 15.2 - NAS
opensuse 15.2 - NAS
Re: n:m Beziehung
Ich kann das zip-Archive wegen des Ä nicht entpacken, bitte nochmal packen, ohne Ä.
mfg
boser
Computer sind halt dazu da, Probleme zu lösen, die wir ohne sie nicht hätten.
boser
Computer sind halt dazu da, Probleme zu lösen, die wir ohne sie nicht hätten.
Re: n:m Beziehung
Entschuldigung!
Freitag
Freitag
- Dateianhänge
-
- Lieblingsgetraenk.zip
- (4.27 KiB) 257-mal heruntergeladen
mit beträchtlichem Gruß
opensuse 15.2 - NAS
opensuse 15.2 - NAS
Re: n:m Beziehung
Schau dir das mal an.
Schnell was nach meinen vorstellungen zusammen gebastellt.
Die Abfrage zeigt das ergebnis.
Schnell was nach meinen vorstellungen zusammen gebastellt.
Die Abfrage zeigt das ergebnis.
- Dateianhänge
-
- boser_Grtraenke.odb.zip
- (4.49 KiB) 257-mal heruntergeladen
mfg
boser
Computer sind halt dazu da, Probleme zu lösen, die wir ohne sie nicht hätten.
boser
Computer sind halt dazu da, Probleme zu lösen, die wir ohne sie nicht hätten.
Re: n:m Beziehung
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.
mfg
boser
Computer sind halt dazu da, Probleme zu lösen, die wir ohne sie nicht hätten.
boser
Computer sind halt dazu da, Probleme zu lösen, die wir ohne sie nicht hätten.
Re: n:m Beziehung
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
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
mit beträchtlichem Gruß
opensuse 15.2 - NAS
opensuse 15.2 - NAS
-
- * LO-Experte *
- Beiträge: 834
- Registriert: Fr 28. Mär 2014, 10:41
Re: n:m Beziehung
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
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
Freischreiber nutzt seit 1/2025 LibreOffice Version 7.2.7.2 unter Windows 11 und SplitDB mit HSQL 2.7.4.
Lesenswert: https://wiki.documentfoundation.org/ReleasePlan/de
Lesenswert: https://wiki.documentfoundation.org/ReleasePlan/de
Re: n:m Beziehung
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
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
https://de.libreoffice.org/get-help/documentation/
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=base_handbuch
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=xml_formulare
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=base_handbuch
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=xml_formulare
An alle, die das LibreOffice-Forum gern nutzen und unterstützen wollen:
Bitte helfen Sie uns mit 7 Euro pro Monat.
Durch Ihren Beitrag tragen Sie dazu bei, unsere laufenden Kosten für die kommenden Monate zu decken.
Unkompliziert per Kreditkarte oder PayPal.
Als ein kleines Dankeschön werden Sie im LO-Forum als SUPPORTER gekennzeichnet.