🙏 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!🍀

❤️ DANKE >> << DANKE ❤️

>> 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

Base ermöglicht es Ihnen, Ihre Daten in einer Datenbank direkt mit LibreOffice zu bearbeiten.
Freitag
Beiträge: 13
Registriert: Mi 10. Dez 2014, 22:16

n:m Beziehung

Beitrag von Freitag » Mi 10. Dez 2014, 23:51

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
mit beträchtlichem Gruß
opensuse 15.2 - NAS

RobertG
* LO-Experte *
Beiträge: 2884
Registriert: Sa 19. Mai 2012, 17:37
Kontaktdaten:

Re: n:m Beziehung

Beitrag von RobertG » Do 11. Dez 2014, 08:05

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
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

Freitag
Beiträge: 13
Registriert: Mi 10. Dez 2014, 22:16

Re: n:m Beziehung

Beitrag von Freitag » Do 11. Dez 2014, 13:06

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
Dateianhänge
Lieblingsgetränk.zip
(4.27 KiB) 227-mal heruntergeladen
mit beträchtlichem Gruß
opensuse 15.2 - NAS

boser
Beiträge: 106
Registriert: Di 26. Okt 2010, 20:41
Kontaktdaten:

Re: n:m Beziehung

Beitrag von boser » Do 11. Dez 2014, 13:18

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.

Freitag
Beiträge: 13
Registriert: Mi 10. Dez 2014, 22:16

Re: n:m Beziehung

Beitrag von Freitag » Do 11. Dez 2014, 13:28

Entschuldigung!

Freitag
Dateianhänge
Lieblingsgetraenk.zip
(4.27 KiB) 258-mal heruntergeladen
mit beträchtlichem Gruß
opensuse 15.2 - NAS

boser
Beiträge: 106
Registriert: Di 26. Okt 2010, 20:41
Kontaktdaten:

Re: n:m Beziehung

Beitrag von boser » Do 11. Dez 2014, 13:33

Schau dir das mal an.
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
Beiträge: 106
Registriert: Di 26. Okt 2010, 20:41
Kontaktdaten:

Re: n:m Beziehung

Beitrag von boser » Do 11. Dez 2014, 13:38

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.

Freitag
Beiträge: 13
Registriert: Mi 10. Dez 2014, 22:16

Re: n:m Beziehung

Beitrag von Freitag » Do 11. Dez 2014, 14:11

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
mit beträchtlichem Gruß
opensuse 15.2 - NAS

Freischreiber
* LO-Experte *
Beiträge: 834
Registriert: Fr 28. Mär 2014, 10:41

Re: n:m Beziehung

Beitrag von Freischreiber » So 21. Dez 2014, 15:02

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
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

RobertG
* LO-Experte *
Beiträge: 2884
Registriert: Sa 19. Mai 2012, 17:37
Kontaktdaten:

Re: n:m Beziehung

Beitrag von RobertG » So 21. Dez 2014, 15:54

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
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


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.



Antworten