Seite 1 von 1

Formular zur Eingabe von n:m Beziehungen

Verfasst: Mi 17. Dez 2014, 08:46
von Freitag
Hallo!
In einem anderen thread ("n:m Beziehung") wurde mir schon geholfen. Ganz klar ist mir das Ganze immer noch nicht.

Ich hänge 2 einfache Beispiele an:
In dem einen Beispiel enthält die Extratabelle (Gibt es dafür einen Ausdruck?) einen Schlüssel und 2 Integer-Felder. Über die Integer-Felder kann ich zwei 1:n Beziehungen zu Personen und Getraenke definieren, die auch grafisch mit "n:1" angezeigt werden.
Im anderen Beispiel hat die Extratabelle nur 2 Integer-Felder, die gemeinsam als Schlüssel definiert sind. Beziehungen, die grafisch angezeigt werden kann ich nicht definieren.
Abfragen, die mir die Personen mit ihren Lieblingsgetränken zeigen kann ich mit beiden Beispielen erstellen. Welches ist der wesentliche Unterschied?

Ich schaffe es nicht ein Formular zu erstellen, das 1 Person mit ihren Lieblingsgetränken zeigt. Die Reihenfolge und die Anzahl der Getränke ist nicht wichtig. Zerschlagt bitte das Brett vor meinem Kopf.

Re: Formular zur Eingabe von n:m Beziehungen

Verfasst: Mi 17. Dez 2014, 09:32
von Freischreiber
Hallo Freitag,

dein erstes Beispiel ist nicht empfehlenswert: wenn die Zwischentabelle einen eigenen Primärschlüssel hat, sind mehrere gleiche Kombinationen aus Person und Getränk möglich.

Die zweite Datei ist richtig: kombinierter Primärschlüssel in der Zwischentabelle. Dort kannst du Beziehungen mit der Maus ziehen, wenn die Richtung stimmt (kein Witz: http://www.libreoffice-forum.de/viewtop ... 10&t=14401 )

Und: n:1-Beziehungen gehen nur, wenn auch in der Zwischentabelle die GetraenkID denselben Datentyp hat: Integer.

Das Anlegen des Formulars (mit Unter- und Unter-Unterformular) habe ich nach dieser Anleitung hier sofort geschafft:
http://www.ingo-bartling.de/info/klasse ... obase8.pdf

Gruß
Freischreiber

Re: Formular zur Eingabe von n:m Beziehungen

Verfasst: Mi 17. Dez 2014, 14:02
von Freitag
Der Tipp, dass man beim Ziehen der Beziehung auf die Richtung achten muss war gut.

Ein Formular mit allen Personen und zu jeder Person die Lieblingsgetränke, die man dann ändern oder löschen kann, schaffe ich nicht.

Re: Formular zur Eingabe von n:m Beziehungen

Verfasst: Mi 17. Dez 2014, 15:19
von RobertG
Hallo Freitag,

schau Dir die Anlage an und vergleiche.
Du hattest in der Beziehungsdefinition die Tabellen falsch miteinander verknüpft. Getraenk_ID war mit der ID von Personen verknüpft. Das macht keinen Sinn.
Das Formular habe ich schnell mit dem Assistenten erstellt. In dem oberen Tabellenkontrollfeld stehen alle Namen, in dem unteren Tabellenkontrollfeld Auswahlfelder für die Getränke.

Gruß

Robert

Re: Formular zur Eingabe von n:m Beziehungen

Verfasst: Fr 19. Dez 2014, 00:15
von Freitag
Danke Robert!

Ich habe es noch einmal ins Reine geschrieben. Es gibt nur noch 1 Beziehung (1:n). Trotzdem gilt zwischen Person und Getränk eine n:m Beziehung: Jede Person kann mit jedem Getränk verknüpft werden und jedes Getränk mit jeder Person. Mir fehlt wohl die Schärfe beim Begriff "Beziehung".

Re: Formular zur Eingabe von n:m Beziehungen

Verfasst: Fr 19. Dez 2014, 07:33
von Freitag
Nachtrag

Mein Ansatz, eine n:m Beziehung durch 2 n:1 Beziehungen herzustellen war richtig. Der Fehler in Lieblingsgetraenk_3.odb und Lieblingsgetraenk_4.odb ist, dass das Feld GetraenkID den falschen Typ hat. Es hat den Typ "decimal", muss aber "integer" sein.