🙏 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
Liebes Forum,
ich versuche zwischen 3 Tabellen unterschiedliche Beziehungen herzustellen. Mein Aufbau ist wie folgt:
Tabelle 1 enthält Kundenstammdaten
Tabelle 2 enthält AngebotsNr. zu einem jeweiligen Kunden
Tabelle 3 enthält die Artikel die in verschiedenen Angeboten vorkommen können.
Zwischen Tabelle 1 und Tabelle 2 habe ich eine 1:n Beziehung gezogen (ein Kunde kann viele Angebote erhalten). Zwischen Tabelle 2 und Tabelle 3 besteht nun eine Viele zu Viele Beziehung, denn verschiedene Artikel können in vielen Angeboten erscheinen. Aber nur ein Kunde hat ein Angebot mit einer spezifischen Nr. und den dazugehörenden Artikeln.
Mir gelingt es nun leider nicht über 'Zwischentabellen' die n:m Beziehung zwischen Tabelle 2 und Tabelle 3 herzustellen.
Laut dem base handbook kann man in einer Tabelle auch zwei Primärschlüssel vergeben. Bereits an diesem Punkt bekomme ich eine Fehlermeldung.
Ich würde mich sehr freuen, wenn mir da jemand einen Tipp geben könnte.
Danke schon im Voraus.
Lizzy
ich versuche zwischen 3 Tabellen unterschiedliche Beziehungen herzustellen. Mein Aufbau ist wie folgt:
Tabelle 1 enthält Kundenstammdaten
Tabelle 2 enthält AngebotsNr. zu einem jeweiligen Kunden
Tabelle 3 enthält die Artikel die in verschiedenen Angeboten vorkommen können.
Zwischen Tabelle 1 und Tabelle 2 habe ich eine 1:n Beziehung gezogen (ein Kunde kann viele Angebote erhalten). Zwischen Tabelle 2 und Tabelle 3 besteht nun eine Viele zu Viele Beziehung, denn verschiedene Artikel können in vielen Angeboten erscheinen. Aber nur ein Kunde hat ein Angebot mit einer spezifischen Nr. und den dazugehörenden Artikeln.
Mir gelingt es nun leider nicht über 'Zwischentabellen' die n:m Beziehung zwischen Tabelle 2 und Tabelle 3 herzustellen.
Laut dem base handbook kann man in einer Tabelle auch zwei Primärschlüssel vergeben. Bereits an diesem Punkt bekomme ich eine Fehlermeldung.
Ich würde mich sehr freuen, wenn mir da jemand einen Tipp geben könnte.
Danke schon im Voraus.
Lizzy
Re: n:m Beziehung
Das halte ich für ausgeschlossen. Kann es sein, dass Du das mit einem zusammensetzten Primärschlüssel verwechselst.Lizzy hat geschrieben:Laut dem base handbook kann man in einer Tabelle auch zwei Primärschlüssel vergeben.
Grundsätzlich gibt es nur einen Primärschlüssel, aber mehrere Indexschlüssel.
Logisch, in der Tabelle 3 gibt es vermutlich keine Angebotsnummer. D. h., Tabelle 3 enthält vermutlich die Artikel die in einem Angebot möglich sind, folgedessen benötigst Du eine 4 Tabelle die die Angebotsnummer mit den angebotenen Artikeln enthält, dann kannst Du auch eine Beziehung zur Tabelle 2 herstellen.Lizzy hat geschrieben:Mir gelingt es nun leider nicht über 'Zwischentabellen' die n:m Beziehung zwischen Tabelle 2 und Tabelle 3 herzustellen.
Re: n:m Beziehung
Hallo Lizzy,
wenn Du aus zwei Feldern einen gemeinsamen Primärschlüssel erstellen willst (das ist dann nur ein Schlüssel, es kann also das erste Feld ohne Probleme mehrmals den gleichen Wert repräsentieren, während das zweite wechselt), dann musst Du im Tabellenentwurf beide Felder gemeinsam markieren, dann die rechte Maustaste nutzen und auf "Primärschlüssel" klicken. In der aktuellen Fassung des Handbuches ist so etwas mit einzelnen Screenshots an einem einfachen Beispiel ab S. 24 ausführlich erklärt. Das einfache Beispiel zeigt so eine n:m-Beziehung.
Du versuchst vermutlich einen Weg, der für Dein Projekt nicht ganz passend ist. Schau einfach einmal die Screenshots von den Beziehungen bei diesem Beispiel an:
http://robert.familiegrosskopf.de/index ... r_rechnung. Da ist keine Tabelle mit zwei Primärschlüssel dabei. Schließlich soll doch auch in so einem Angebot (Rechnung) vielleicht die gleiche Ware mehrmals auftauchen können, oder?
Gruß
Robert
wenn Du aus zwei Feldern einen gemeinsamen Primärschlüssel erstellen willst (das ist dann nur ein Schlüssel, es kann also das erste Feld ohne Probleme mehrmals den gleichen Wert repräsentieren, während das zweite wechselt), dann musst Du im Tabellenentwurf beide Felder gemeinsam markieren, dann die rechte Maustaste nutzen und auf "Primärschlüssel" klicken. In der aktuellen Fassung des Handbuches ist so etwas mit einzelnen Screenshots an einem einfachen Beispiel ab S. 24 ausführlich erklärt. Das einfache Beispiel zeigt so eine n:m-Beziehung.
Du versuchst vermutlich einen Weg, der für Dein Projekt nicht ganz passend ist. Schau einfach einmal die Screenshots von den Beziehungen bei diesem Beispiel an:
http://robert.familiegrosskopf.de/index ... r_rechnung. Da ist keine Tabelle mit zwei Primärschlüssel dabei. Schließlich soll doch auch in so einem Angebot (Rechnung) vielleicht die gleiche Ware mehrmals auftauchen können, oder?
Gruß
Robert
Zuletzt geändert von RobertG am Di 6. Dez 2016, 20:17, insgesamt 1-mal geändert.
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
-
- * LO-Experte *
- Beiträge: 832
- Registriert: Fr 28. Mär 2014, 10:41
Re: n:m Beziehung
Hallo,
zu n:m-Beziehungen habe ich eine Frage:
Wenn ich plane, eine Kundentabelle und eine Auftragstabelle miteinander in Beziehung zu setzen, wobei ein Kunde mehrere Aufträge erteilen kann, aber ein Auftrag auch von mehreren Kunden zusammen erteilt werden kann - dann ist eine n:m-Beziehung und eine Zwischentabelle doch das Mittel der Wahl, oder?
Gruß
Freischreiber
zu n:m-Beziehungen habe ich eine Frage:
Wenn ich plane, eine Kundentabelle und eine Auftragstabelle miteinander in Beziehung zu setzen, wobei ein Kunde mehrere Aufträge erteilen kann, aber ein Auftrag auch von mehreren Kunden zusammen erteilt werden kann - dann ist eine n:m-Beziehung und eine Zwischentabelle doch das Mittel der Wahl, oder?
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,
Gruß
Robert
Unter den Umständen ja, auch wenn mir nicht ganz klar ist, wie mehrere Kunden den gleichen Auftrag erteilen ...Freischreiber hat geschrieben:... Kunde mehrere Aufträge erteilen kann, aber ein Auftrag auch von mehreren Kunden zusammen erteilt werden kann ...
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
-
- * LO-Experte *
- Beiträge: 832
- Registriert: Fr 28. Mär 2014, 10:41
Re: n:m Beziehung
Hallo Robert,
mehrere Kunden zu einem Auftrag hatte ich in der Vergangenheit schon öfter, Eheleute, Lebenspartner... diese Daten würde ich gern komplett rüberretten aus meinen bisherigen Excel-Tabellen
Und auch in Zukunft könnte es praktisch sein, einen Schuldner mehr zu haben.
Gruß
Freischreiber
mehrere Kunden zu einem Auftrag hatte ich in der Vergangenheit schon öfter, Eheleute, Lebenspartner... diese Daten würde ich gern komplett rüberretten aus meinen bisherigen Excel-Tabellen

Und auch in Zukunft könnte es praktisch sein, einen Schuldner mehr zu haben.

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
-
- * LO-Experte *
- Beiträge: 832
- Registriert: Fr 28. Mär 2014, 10:41
Re: n:m Beziehung
Hallo,
kaum hab ich angefangen, schon kommen die Probleme...
Jetzt habe ich eine Zwischentabelle mit kombiniertem Primärschlüssel AdressID-AuftragsID und ein Formular "Auftrag", das mit Unter-Unterformular die Daten des Auftrags und die Zwischentabelle anzeigt. Das klappt soweit.
(Übrigens @Lizzy: Eine Zwischentabelle ist da wohl auch richtig, aber nicht mit kombiniertem Primärschlüssel, sondern mit eigenem, damit eine Angebots-Artikel-Kombination mehrfach vorkommen kann)
Aber wie fülle ich jetzt am praktikabelsten diese Zwischentabelle mit weiteren Daten?
Schön wäre, vom einzelnen Kunden aus (Adressen-Tabelle) einen neuen Auftrag anlegen zu können oder einen bestehenden Auftrag mit diesem Kunden verbinden zu können.
Eine Lösung habe ich hier gefunden: http://www.ingo-bartling.de/info/klasse ... obase8.pdf
("klasse9"... ich wünschte sowas hätte mit mir mal jemand gemacht, damals, in Klasse 9
)
Eine Spalte der Zwischentabelle als Listenfeld anlegen, das eine Abfrage abbildet:
Sieht ganz gut aus. Damit kann man von einem Auftrag aus einen bereits angelegten Kunden zuordnen.
Gruß Freischreiber
kaum hab ich angefangen, schon kommen die Probleme...
Jetzt habe ich eine Zwischentabelle mit kombiniertem Primärschlüssel AdressID-AuftragsID und ein Formular "Auftrag", das mit Unter-Unterformular die Daten des Auftrags und die Zwischentabelle anzeigt. Das klappt soweit.
(Übrigens @Lizzy: Eine Zwischentabelle ist da wohl auch richtig, aber nicht mit kombiniertem Primärschlüssel, sondern mit eigenem, damit eine Angebots-Artikel-Kombination mehrfach vorkommen kann)
Aber wie fülle ich jetzt am praktikabelsten diese Zwischentabelle mit weiteren Daten?
Schön wäre, vom einzelnen Kunden aus (Adressen-Tabelle) einen neuen Auftrag anlegen zu können oder einen bestehenden Auftrag mit diesem Kunden verbinden zu können.
Eine Lösung habe ich hier gefunden: http://www.ingo-bartling.de/info/klasse ... obase8.pdf
("klasse9"... ich wünschte sowas hätte mit mir mal jemand gemacht, damals, in Klasse 9

Eine Spalte der Zwischentabelle als Listenfeld anlegen, das eine Abfrage abbildet:
Code: Alles auswählen
SELECT "Nachname" || ', ' || "Vorname" AS "Name", "ID" FROM "t-adressen"
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
Hi,
anbei ein Beispiel mit einem einfachen Formular um das Prinzip zu zeigen, jeweils mit Listenfeld im Tabellenkontrollfeld
HTH R
anbei ein Beispiel mit einem einfachen Formular um das Prinzip zu zeigen, jeweils mit Listenfeld im Tabellenkontrollfeld
HTH R
- Dateianhänge
-
- M_N_KUNDEN_AUFTRAEGE.zip
- nur entpacken
- (14.27 KiB) 369-mal heruntergeladen
Windows 11: AOO, LO Linux Mint: AOO, LO
-
- * LO-Experte *
- Beiträge: 832
- Registriert: Fr 28. Mär 2014, 10:41
Re: n:m Beziehung
Hallo F3K,
das sieht natürlich noch magischer aus: direkt in der Spalte die Abfrage mit Listeninhalt SQL...
Hat das technisch Vorteile gegenüber einer extra Abfrage mit Namen?
Danke!
PS: 753 Parturient Rd.
Sind das echte Adressen?
das sieht natürlich noch magischer aus: direkt in der Spalte die Abfrage mit Listeninhalt SQL...
Hat das technisch Vorteile gegenüber einer extra Abfrage mit Namen?
Danke!
PS: 753 Parturient Rd.

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