1:n Beziehungen in FileMaker Pro am Beispiel Kunden und Artikel

Beziehung aufbauen

1:1 Beziehung in FileMaker Pro am Beispiel einer Kunden-Artikel-Datenbank.

Um diese Beziehung aufzubauen, benötigt man entweder in der Tabelle „Kunden“ ein Feld für die Artikelnummer, was aber nur einen Artikel pro Kunde zulässt, oder in der Tabelle Artikel ein Feld für eine Kundennummer, was ebenfalls nur einen Kunden pro Artikel zulässt. Diese Art von eindeutigen Beziehungen (1:1) ist aber nicht immer gewünscht. Es wird also eine Möglichkeit für eine 1:n Beziehung gesucht, in der ein Kunde auf mehrere Artikel zeigt, bzw. derselbe Artikel auf mehrere Kunden zeigt. Um diese Form der Beziehung im FileMaker Pro umzusetzen, benötigt man eine weitere Bezugstabelle. In diesem Artikel beschreibe ich, wie eine solche Lösung in einer FileMaker-Datenbank umgesetzt werden kann.

Ich nenne diese Bezugstabelle mal „Artikel zu Kunden“. Diese Tabelle verfügt zunächst nur über zwei Felder: „_reKunden“ und „_reArtikel“, die wie im Diagramm (Abb. 1) dargestellt in Beziehung stehen. Die Tabelle „Artikel Auswahl Liste“ ist keine weitere FileMaker Pro Tabelle sondern eine Sicht auf die Tabelle Artikel, das sieht man sehr schön in Tabellendefinition in der Spalte „Auftreten im Diagramm“.

FileMaker Beziehungen im Diagramm

Abb. 1 Aufbau der Beziehungen

Wozu benötige ich die Tabelle „Artikel Auswahl Liste“? Nun, die Tabelle „Artikel“ steht in Bezug zu der Tabelle „Artikel zu Kunden“ und kann als Werteliste innerhalb der Beziehung kein Ergebnis liefern, ich brauche aber eine Werteliste zum Auswählen der Artikel, deshalb gibt es die Tabelle „Artikel Auswahl Liste“, sie ist die Datenbasis für eine Auswahlliste.

FileMaker Training und Coaching

Anzeige

Einstellung für die Beziehungen

Abb.2 Einstellung der Beziehung „Kunden : Artikel zu Kunden“

Abb.3 Beziehungsdetail Artikel

Abb.3 Einstellung der Beziehung „Artikel : Artikel zu Kunden“

Platzierung als Ausschnitt im Layout

Die Tabelle „Artikel zu Kunden“ wird als Ausschnitt im Layout Kunden platziert. In dem Ausschnitt werden folgende Felder eingefügt.

  1. _reArtikel, das Feld stammt aus der Tabelle „Kunden zu Artikel“ und ist das Bezugsfeld der Tabelle zu der Bezugstabelle „Artikel“, die Inhalte (Artikel) werden über eine Werteliste als „Einblendliste“ ausgewählt.
  2. df_Bezeichnung, das Feld stammt aus der Tabelle „Artikel“ und ist ein Ergebnis der Beziehung.
  3. df_Beschreibung, das Feld stammt aus der Tabelle „Artikel“ und ist ebenfalls ein Ergebnis der Beziehung.

Für die Beziehung zum Kunden muss kein Datenfeld platziert werden, weil die Beziehung so definiert ist, dass neue Datensätze im Ausschnitt automatisch den Bezugswert erhalten, und die Tabelle als Ausschnitt im Layout Kunden platziert ist, das jeweils zum aktuellen Datensatz den Bezugswert liefert. Siehe Abb. 2 zu den Einstellungen der Beziehung.

Kundenlayout im Layoutmodus

Abb. 4 Ausschnitt im Kundenlayout

Werteliste für Auswahl der Artikel

Aufbau der Werteliste für das Feld _reArtikel im Ausschnit „Artikel zu Kunden“.

Wie bereits erwähnt, kann die Tabelle Artikel nicht als Quelle für die Werteliste verwendet werden, weil sie selbst Teil der Beziehung ist, und somit erst Werte liefert, sobald die Beziehung einen gültigen Wert enthält. Für die Werteliste wird deshalb das Auftreten der Tabelle Artikel im Diagramm unter dem Namen „Artikel Auswahl Liste“ benutzt.

Anlegen einer neuen Werteliste, Menüleiste, Ablage, Verwalten, Wertelisten. Im erscheinenden Dialogfenster die Taste „Neu“ klicken. Für das weitere Vorgehen haben ich die zwei folgenden Screenshots angefügt.

Abb. 5.1 Werteliste für die Auswahl der Artikel

Abb. 5.2 Feldauswahl für die Werteliste

Layout im Blätternmodus

Abb. 6 Die Tabelle „Artikel zu Kunden“ im Layout Kunden

Mit der angelegten Beziehung kann jetzt zu jedem Kunden eine beliebige Anzahl von Artikeln zugeordnet werden. Die Tabelle „Kunden zu Artikel“ liefert genauso eine beliebige Anzahl von Kunden zu einem Artikel.

Jens Liebelt, April 2011.

Diesen Beitrag bewerten:

1 Stern2 Sterne3 Sterne4 Sterne5 Sterne (Bisher noch keine Bewertungen vorhanden)
Loading...

Über den Autor

Jens Liebelt
Liebelt Polaris Fachkomponenten Hauptstrasse 23 21646 Holvede• FileMaker Datenbanken • Dynamische Webseiten mit FileMaker • E-Commerce mit FileMaker • FileMaker als NewsBlog System • FileMaker Fernschulung, mit freier Zeiteinteilung • FileMaker Support via TeamViewer

4 Kommentare

  1. Louis Voellmy

    Hallo Markus
    Der Titel ist irreführend, denn es geht um eine m:n Beziehung, die in FileMaker durch das Erstellen einer Kreuztabelle in zwei 1:n Beziehungen aufgeteilt wird.
    Die Beziehungen im Deinem ersten Abschnitt sind keine 1:1 Beziehungen, sondern 1:n Beziehungen, da der gleiche Artikel bei mehreren Personen und eine Person bei mehreren Artikeln drin sein könnte.
    Nur so :-)

    1. MoritzH

      Guten Tag,

      dieser Artikel hat mir weitergeholfen – Danke! Zwei Fragen verbleiben noch:

      (1) Ich habe nicht ganz nachvollzogen, warum man eine Tabelle im Diagramm noch einmal auftreten lassen muss, um sie als Werteliste zu verwenden. Ich habe bei meinen Kreuztabellen direkt Felder aus Tabellen angegeben, die Teil der Beziehung waren und habe korrekte Werte erhalten.

      (2) Ich habe drei Tabellen, die ich mit Hilfe von drei Kreuztabellen [+ zwei weitere für Self-Joints, die ich hier außen vor lasse) verbinden möchte.

      Die Tabellen heißen, der Anschaulichkeit wegen gebe ich dies an, „Fakten“ (A), „Personen“ (B) und „Orte“ (C). Das Verknüfungsschema sieht folgendermaßen aus:

      A x B, A x C; B x A, B x C; C x A, C x B – jeder mit jedem also (s. Bild mit eingekreister ‚Problembeziehung‘ https://www.dropbox.com/s/q2y9m79bpz0pdt9/Beziehungen.png?v=0mcn). Das Problem: alle diese Beziehungen funktionieren einwandfrei bis auf die Vebindung C x B – hier werden die Beziehungen zwischen den Datensätzen nicht richtig eingetragen und im Ausschnittsbereich auch nicht richtig dargestellt. Liegt es daran, dass jede Tabelle mit jeder verknüpft ist?

      Vielen Dank für Eure Hilfe
      Moritz

  2. John

    Hallo

    Wenn man nun aber aus dem Ausschnitt einen Artikel wieder löscht, wird in der Bezugstabelle „Artikel zu Kunden“ lediglich der Feldwert von _reArtikel gelöscht, nicht jedoch der komplette Datensatz…

    Wie kann man das ändern? Bzw. ist es tragisch wenn solche „halben“ Datensätze in der Bezugstabelle „Artikel zu Kunden“ verbleiben?

    1. Alexander

      Für alle die die gleiche Frage plagt wir John – man kann den ganzen Datensatz löschen indem man im Layoutmodus mit dem Tastenwerkzeug eine Taste hinzufügt mit der Funktion „Auschnittreihe löschen“.

Schreiben Sie einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.