FileMaker Pro permet de lier deux tables entre elles. Cela signifie que l'on va mettre en comparaison un ou des couples de rubriques, chaque rubrique appartenant à l'une des tables. La comparaison la plus courante est l'égalité, mais FileMaker Pro permet également l'inégalité, comparée (<, >) ou pas (?) ou la non comparaison (X, de tout à tout).
Un lien est toujours construit entre deux tables. Les liens de type triangulaires entre 3 tables sont interdits.
Les types de lien
Il existe plusieurs manières de lier les tables entre elles, ou plusieurs types de liens :
- Lien de 1 donnée à 1 donnée (1->1 ou 1 à 1))
- Ce type de lien est courant, mais il est bon de se demander si il ne lie pas deux éléments unitaires identiques...
- Lien de 1 donnée à plusieurs données (1->n ou 1 à n)
Exemples :
- 1 école = plusieurs classes (alors qu'une classe ne peut être que dans une école)
- 1 classe = plusieurs élèves (les élèves n'étant inscrits que dans une classe)
- 1 facture = 1 OU plusieurs paiements (les règlements ne s'appliquant qu'à une facture)
- Lien de plusieurs données à plusieurs données (n->n ou n à n)
Exemples :
- Un professeur a plusieurs classes et une classe a plusieurs professeurs
- une section sportive accueille plusieurs inscrits, qui peuvent pratiquer plusieurs activités dans la même association
- On peut dire, pour simplifier, que FileMaker Pro ne gère nativement que des liens de 1 à 1 ou de 1 à n
- le lien de n à n passe donc par une table intermédiaire entre les 2 tables
- Chaque table recrée un lien de 1 à n avec la table intermédiaire
- Il faudra créer une table intermédiaire "ProfClasse"
- 1 enregistrement (un professeur) est lié à n enregistrements de la table intermédiaire Prof_Classe
- 1 enregistrement (une classe) est lié à n enregistrements de la table intermédiaire Prof_Classe
- chaque enregistrement de Prof_Classe est lié à une classe et un professeur
- Un professeur peut donc être lié à plusieurs classes, elles-mêmes reliées à plusieurs professeurs
- Auto-lien : lien d'une table sur elle-même (1->1 ou 1->n)
- Un exemple : parent - élève dans la table "Personnes"