Veelzijdige relaties
In een veelzijdige relatie gebruikt u meerdere vergelijkingsvelden. Daardoor worden in FileMaker Pro meer criteria geëvalueerd voordat de overeenkomende gerelateerde records kunnen worden samengevoegd. In FileMaker Pro worden de waarden van elk vergelijkingsveld aan elke zijde van de relatie met elkaar vergeleken in de volgorde waarin de velden worden weergegeven. Dit is een zogeheten AND-vergelijking (EN). Voor elk vergelijkingsveld moet in de andere tabel een overeenkomende waarde in dezelfde record worden gevonden (anders worden de records niet aan elkaar gekoppeld).
Deze relatie is met de volgende criteria gedefinieerd:
Tabel |
Veldnaam |
Opmerking |
TabelA |
TekstVeldA |
Vergelijkingsveld naar TekstVeldB en GetalVeldB |
|
GetalVeldA |
Vergelijkingsveld naar TekstVeldB en GetalVeldB |
TabelB |
TekstVeldB |
Vergelijkingsveld naar TekstVeldA en GetalVeldA |
|
GetalVeldB |
Vergelijkingsveld naar TekstVeldA en GetalVeldA |
Volgens de criteria in deze relatie komt een record in TabelA met in TekstVeldA de waarde Blauw en in GetalVeldA de waarde 123 alleen overeen met de records in TabelB die in TekstVeldB en GetalVeldB respectievelijk de waarden Blauw en 123 bevatten. Als TekstVeldA en TekstVeldB wel overeenkomende waarden bevatten maar GetalVeldA en GetalVeldB niet, geeft de relatie geen relateerde records als resultaat.
Tabel |
Recordnummer |
Veldnaam |
Waarde |
Gerelateerde record? |
TabelA |
1 |
TekstVeldA |
Blauw |
Ja |
|
2 |
TekstVeldA |
Blauw |
Nee |
|
3 |
TekstVeldA |
Rood |
Nee |
TabelB |
1 |
TekstVeldB |
Blauw |
Ja |
|
2 |
TekstVeldB |
Rood |
Nee |
|
3 |
TekstVeldB |
Blauw |
Ja |
Een veelzijdige relatie maken
In dit voorbeeld maakt u een veelzijdige relatie met een database die deze drie tabellen heeft:
- Apparatuur, waarin de inventaris van apparaat die wordt verhuurd is opgeslagen
- Klanten, waarin de namen en adressen van de klanten zijn opgeslagen
- Catering lijn items, waarin voor elke verhuur van apparatuur een record is opgenomen, met onder andere de apparatuurcode, het klantnummer en de datum van het evenement
Deze database houdt de verhuur van apparatuur bij zodat voor een geselecteerde klant en een specifieke datum alle verhuurde apparaten kunnen worden weergegeven.
- De veelzijdige relatie is tussen de tabellen ‘Klanten’ en ‘Catering lijn items’. Maak deze tabellen met de volgende velden:
- In het dialoogvenster ‘Relatie bewerken’ definieert u ‘Klantnummer’ en ‘Datum gebeurtenis’ als de vergelijkingsvelden in de relatie tussen de tabellen ‘Klanten’ en ‘Catering lijn items’.
- Stel in de tabel ‘Klanten’ het veld ‘Klantnummer’ zodanig in dat automatisch een volgnummer wordt ingevoerd zodat elke record in de tabel ‘Klanten’ een unieke identificatiecode bevat.
- Selecteer in de tabel ‘Catering lijn items’ de optie Maken van records in deze tabel toegestaan via deze relatie.
De tabellen in de relatiegrafiek zien er volgt uit:
- Voeg een portaal aan de lay-out ‘Klanten’ toe en voeg het veld Klanten::Uitrustingscode toe aan het portaal.
Tabel |
Veldnaam |
Opmerking |
Klanten |
Klantnummer |
Een veld van het veldtype Getal, met automatische invoer van een volgnummer. Dit is een van de vergelijkingsvelden voor de tabel Catering lijn items. |
|
Datum van evenement |
Datumveld; het andere vergelijkingsveld voor de tabel Catering lijn items |
Catering lijn items |
Klantnummer |
Een getalveld. Dit is een van de vergelijkingsvelden voor de tabel Klanten. |
|
Datum van evenement |
Een datumveld. Dit is het andere vergelijkingsveld voor de tabel Klanten. |
|
Uitrustingscode |
Getalveld |
Als u een nieuwe gerelateerde record wilt maken, voert u de huidige datum in het veld Klanten::Datum gebeurtenis in en vervolgens een uitrustingscode in het portaal in de lay-out ‘Klanten’.
Omdat het veld ‘Datum gebeurtenis’ een vergelijkingsveld is en voor de relatie nieuwe gerelateerde records kunnen worden gemaakt in de tabel ‘Catering lijn items’, wordt de waarde in het veld Klanten::Datum gebeurtenis automatisch ingevoerd in het veld Catering lijn items::Datum gebeurtenis.
Om de artikelen weer te geven die op een vroegere datum zijn verhuurd, voert u een andere datum in het veld Klanten::Datum gebeurtenis in. In FileMaker Pro worden dan alle gerelateerde records met dit klantnummer en deze gebeurtenisdatum weergegeven.