Champs de liens (n:m)
Un champ de liens connecte deux tables en n:m – chaque ligne peut référencer plusieurs lignes de la table cible, et inversement. Techniquement, cela repose sur une table de jonction avec une colonne pour chaque côté.
Lors de la création, vous choisissez :
- la table cible,
- le nom de colonne côté cible (le sens inverse – un champ de liens naît toujours en paire symétrique, une colonne de chaque côté de la relation),
- et la gestion de la table de jonction :
- Créer une nouvelle – IllusionDB crée lui-même la table intermédiaire.
- Utiliser une existante – vous choisissez une table de jonction déjà présente avec ses deux colonnes de clé étrangère.
La valeur d’un champ de liens est toujours une liste de lignes liées. Dans la vue tableau, la cellule affiche un badge avec le nombre (« 3 entrées », même à zéro) – un clic ouvre une fenêtre avec la liste complète : pour chaque ligne, le champ d’affichage de la ligne liée, une icône crayon pour ouvrir l’enregistrement lié et un « × » pour retirer le lien, plus une recherche pour ajouter d’autres liens. La même interface apparaît à l’identique dans le formulaire d’édition d’un enregistrement unique – le tableau et le formulaire se comportent volontairement de la même façon ici (voir aussi Enregistrements enfants, qui utilise le même principe de badge, mais en lecture seule, sans ajout/suppression).
Un champ de liens peut – tout comme un champ de clé étrangère – pointer aussi vers sa propre table, pour des relations n:m entre lignes de la même table.
S’il s’agit en revanche d’une simple relation de clé étrangère 1:n (pas de table de jonction) et que vous souhaitez afficher, côté « parent », toutes les lignes enfants associées, voir Enregistrements enfants.
Modifier la connexion a posteriori -- volontairement impossible
Contrairement aux champs lookup, rollup et enregistrements enfants, la connexion proprement dite d’un champ de liens (table cible, côté opposé, table de jonction) ne peut pas être modifiée a posteriori via « Modifier le champ » – il s’agit d’un choix de conception délibéré : un rebranchage ultérieur pourrait corrompre les données déjà stockées dans la table de jonction. Pour faire pointer un champ de liens vers une autre table cible ou table de jonction, seule la voie Supprimer puis Recréer reste possible.
Le nom de colonne d’un champ de liens peut en revanche être remplacé normalement, comme pour tout autre type de champ, via la même fenêtre modale « Modifier le champ ».