Champs relationnels
Trois types de champs connectent les tables et dérivent des données à partir de ces connexions. Ils forment une chaîne : une relationship définit le lien, puis lookup et rollup lisent ou agrègent les données à travers lui. (Le champ apparenté count — classé dans la catégorie Avancé — traverse également une relation.)
| Type | Objectif |
|---|---|
relationship |
Crée un lien par clé étrangère vers une autre table. Fondation du reste. |
lookup |
Lit une valeur de champ unique depuis un enregistrement lié. En lecture seule. |
rollup |
Agrège un champ sur de nombreux enregistrements liés (somme, moyenne, …). |
relationship
Crée un lien par clé étrangère vers une autre table.
| Propriété | Description |
|---|---|
relatedTable |
Requis. Nom de la table cible à relier. Doit correspondre à une table existante. |
relationType |
Cardinalité. Par défaut many-to-one. Valeurs courantes : one-to-one, many-to-one, one-to-many, many-to-many. |
foreignKey |
Nom personnalisé de la colonne de clé étrangère (utilisé pour one-to-many). Généré automatiquement lorsqu'omis. |
displayField |
Champ de la table liée affiché dans l'interface (par ex. name au lieu de l'identifiant brut). |
onDelete |
Action référentielle lorsque la ligne liée est supprimée (par ex. cascade, set-null, restrict, no-action). |
onUpdate |
Action référentielle lorsque la clé primaire liée est mise à jour. |
reciprocalField |
Nom du champ pour le lien inverse (bidirectionnel) sur la table liée. |
allowMultiple |
Booléen. Autorise la liaison à plusieurs enregistrements (par défaut true pour many-to-many). |
limitToView |
Restreint les enregistrements liés sélectionnables à ceux visibles dans une vue nommée de la table liée. |
- id: 1
name: customer
type: relationship
relatedTable: Customers
relationType: many-to-one
displayField: full_name
onDelete: set-null
reciprocalField: orders
lookup
Affiche une valeur de champ tirée d'un enregistrement lié via une relation existante. En lecture seule et mis à jour automatiquement.
| Propriété | Description |
|---|---|
relationshipField |
Requis. Nom du champ de relation à traverser (doit exister dans la même table). |
relatedField |
Requis. Champ de la table liée dont la valeur doit être affichée. |
filters |
Expression de filtre optionnelle restreignant les enregistrements liés pris en compte. |
- id: 2
name: customer_email
type: lookup
relationshipField: customer
relatedField: email
rollup
Agrège des valeurs provenant de nombreux enregistrements liés.
| Propriété | Description |
|---|---|
relationshipField |
Requis. Nom du champ de relation reliant à la table liée. |
relatedField |
Requis. Champ de la table liée à agréger. |
aggregation |
Requis. Fonction d'agrégation (par ex. SUM, AVG, MIN, MAX, COUNT). |
format |
Format d'affichage du résultat agrégé (par ex. currency, number, percentage). |
filters |
Filtre optionnel appliqué avant l'agrégation. |
- id: 3
name: total_sales
type: rollup
relationshipField: orders
relatedField: amount
aggregation: SUM
format: currency
La chaîne relationnelle. Commencez par une relationship pour créer le lien, puis dérivez des données sans duplication : orders → customer (relationship) → customer_email (lookup), ou agrégez avec rollup/count. Les champs count, lookup et rollup sont validés au moment de la configuration pour garantir que leur relationshipField référence un véritable champ relationship dans la même table.
Voir Relations pour un examen plus approfondi des cardinalités, des actions référentielles, des liens réciproques et de displayField.