From FAQ Filemaker

Tutoriel-Filemaker: Liens - Occurences de table - Nommage

<==Indexation - Rubriques globales - Rubriques multivaluées ^ Structure Mise en place des liens - Lien simple==>

Avant d'aborder les liens entre tables, il convient d'aborder les Occurrences de Tables. Une occurrence de table (OT) est une représentation d'une table, un raccourci vers une table, mais ce n'est PAS une table ! La confusion vient probablement du fait que, lorsqu'on crée une table dans FileMaker Pro, une occurrence de table de même nom est automatiquement créée. Ainsi, après avoir créé les tables dans le fichier GestionEcole.fp7, on trouve dans le graphe de liens (accessible depuis le menu : "Fichier", "Définir" ou "Gérer" (v9), "Bases de données", onglet "Liens") ceci :

Surprenant... On peut allègrement supprimer toutes ces OT, sans faire de casse ! Nous allons néanmoins les garder provisoirement car elles ont tout de même un avantage : chaque table est représentée sur le graphe des liens par au moins une OT.

Il convient d'être rigoureux dans le nommage et l'organisation des OT et des liens, sous peine de créer le célèbre "plat de spaghetti". Ci-dessous un superbe exemple... :

Plusieurs méthodes existent (et évoluent) et seule la méthode "Anchor & Buoys" (Ancre & Bouées) sera présentée ici. Elle a en effet le mérite de la clarté, tant dans le nommage que dans la représentation, même si cette théorie ne profite pas pleinement de la bi-directionnalité des liens. On introduit un premier élément, qui est le GOT ou Groupe d'Occurrences de Tables. C'est un ensemble d'OT comprenant une ancre et des bouées, représentées ainsi :

Ci-dessous un exemple classique d'organisation AB (Ancre Bouées) dans le graphe des liens :

L'ancre est l'OT de départ. A cette ancre seront liées toutes les OT "bouées", qui fourniront à l'ancre toute l'information dont elle a besoin. Règle générale : au moins un GOT par table créée. La règle peut être toujours respectée, si on considère qu'un GOT peut n'être formé que d'une ancre, sans aucune bouée. Une tendance actuelle est de multiplier le nombre de GOT par table, en sériant selon le contexte de travail. Ceci a l'avantage d'alléger le nombre de liens autour d'une ancre.

Nomenclature des OT


Cela peut paraître compliqué au début, mais l'essayer, c'est l'adopter ! On se souvient avoir défini chaque table à l'aide d'un trigramme. Bien nous en a pris, cela va nous aider...

Ancre :

Trigramme de la table en majuscule + 2x "_" + éventuellement une description (souvent non nécessaire).

Exemple : CLA__ pour la table des classes, ou INS__Inscriptions pour les inscriptions. Mais si le trigramme est suffisamment explicite, la description est loin d'être nécessaire !

Bouées du premier rang

Trigramme de l'ancre en minuscule + "_" + trigramme de la table en majuscule + "__" + éventuellement description.
"_" correspond à un simple "underscore" ou tiret bas, "__" à un double tiret bas.

Conventionnellement, on ne met pas de description lorsqu'il s'agit de liens classiques de zkp à zkf. Les autres sont décrits.

Exemple : cla_CRS__CoursSciences ou ins_PER__

Bouées des autres rangs

Même nomenclature, en intercalant les bouées intermédiaires, séparées par un "_"

Exemple : cla_ins_PER__Eleves ou cla_ins_per_MVT__PaiementsEleves

Le double "_" permet un classement des OT par ordre alphabétique, comme démontré ci-dessous :

Nature des liens


Les liens en FileMaker Pro sont bi-directionnels, mais le modèle AB n'utilise pas cette fonctionnalité. Il y a un point de départ (à gauche dans le graphe de liens) et un point d'arrivée (à droite dans le graphe). Leur nature est différente.

Point de départ

  • Il n'est pas nécessaire qu'il soit indexé
  • Il peut être une rubrique globale
  • Il peut être un calcul non mémorisé

Point d'arrivée

  • Il FAUT qu'il soit indexé, ou indexable

Un lien peut être multiple, c'est-à-dire incluant plusieurs rubriques.

Un lien n'est pas forcément une relation d'égalité. Les critères de liens penvent être : =, ≠, >, <, ≥, ≤, X (tout à tout)

Eléments courants de liens, selon nomenclature :

  • zkp, clé primaire
  • zkf_XXX, clé secondaire, ou étrangère, où XXX est le trigramme de la table liée
  • zkk_Xxx, clé constante, dont Xxx est la valeur
  • zkg_Xxx, clé globale
  • zkc_Xxx, clé calculée
  • zk_Xxx, autre clé

Mise en place des ancres


En cas de besoin, le fichier avec ses rubriques (à renommer sans le _5) : GestionEcole version 5

On peut partir des OT existantes : elles ont le mérite de représenter toutes les tables créées. On peut également les conserver et les ranger en haut du graphe. Leur couleur permettra de savoir de quelle table il s'agit. On pourra également s'en servir comme support de création de toute nouvelle rubrique.

Dans la fenêtre de gestion de la base de données, un se place sur l'onglet "liens".

D'abord on nettoie :

  • on "ferme" les OT en cliquant dans le coin supérieur droit.
  • on donne une couleur différente par table (sélectionnez la table choisie (qui s'entoure d'un halo orange) et cliquez dans le sélecteur de couleur en bas de la fenêtre, à gauche d'outils)
  • Si on garde les OT originales, on les range en haut à gauche du graphe, on les duplique toutes et on les oublie (pour le moment). La suite s'applique alors aux OT dupliquées. Sinon, elle s'applique directement aux OT d'origine.
  • on place les OT collées au bord gauche du graphe des liens

Ensuite, ancre par ancre, en cliquant sur chacune d'entre elles, on les renomme selon la nomenclature (CLA__, PER__, etc.). Pour cela, on double-clique sur l'OT à renommer et on change le nom dans la case du bas marquée "Nom". Attention, si on tape avant d'avoir sélectionné le contenu de "Nom", on risque de changer la table source !!!!

On termine en alignant le tout à l'aide des outils disponibles dans la barre du bas :

La mise en place des ancres est terminée ! Il ne reste plus qu'à construire les liens...

Pour comparer : GestionEcole version 6

<==Indexation - Rubriques globales - Rubriques multivaluées ^ Structure Mise en place des liens - Lien simple==>
Récupéré sur http://cqfd-fmp.fr/index.php?n=Tutoriel-Filemaker.Liens-occurences-de-tables-Nommage
Page mise à jour le 05 juillet 2008 à 11h27