Docs/Relations

Relations

Liez vos collections entre elles. Un article a un auteur, un produit a une catégorie. Skema gère tout ça.

Types de relations

belongsTo (appartient à)

Un article appartient à un auteur. Le champ auteur_id est stocké dans la collection articles.

hasMany (possède plusieurs)

Un auteur possède plusieurs articles. C'est l'inverse du belongsTo, calculé automatiquement.

Créer une relation

Dans les paramètres de votre collection, ajoutez un champ :

01Type = Relation
02Collection cible (ex: auteurs)
03Champ d'affichage (ex: name)

Champ d'affichage

Skema vous demande quel champ afficher dans l'interface. Au lieu de voir un UUID, vous voyez une valeur lisible.

Sans champ d'affichage
a1b2c3d4-e5f6-7890
Avec champ d'affichage = name
Jean Dupont

L'ID reste la clé technique. L'interface reste lisible. Skema est fait pour tout le monde.

Sélectionner une relation

Quand vous créez ou modifiez un item, le champ relation affiche un sélecteur avec les items de la collection cible.

Recherche intégrée si vous avez beaucoup d'items. Plus besoin de copier-coller des IDs.

Populate (API)

Par défaut, l'API retourne l'ID. Pour inclure les données complètes de la relation :

# Une relation
GET /public/articles?populate=auteur_id
# Plusieurs relations
GET /public/articles?populate=auteur_id,categorie_id

Évitez de populer trop de relations, ça ralentit les requêtes.

Exemple de réponse

{
  "id": "1",
  "title": "Mon article",
  "auteur_id": {
    "id": "42",
    "name": "Jean Dupont",
    "email": "jean@exemple.com"
  }
}

Suppression et impact

Si vous supprimez un item référencé par d'autres, Skema analyse l'impact et propose :

Cascade

Supprime aussi les items qui référencent celui-ci.

Set null

Met la relation à null dans les items liés.

Annuler

Ne rien faire, garder l'item.

Bonnes pratiques

  • - Nommez vos champs avec le suffixe _id
  • - Choisissez un champ d'affichage explicite (name, title, email)
  • - Évitez les relations circulaires (A → B → A)
  • - Utilisez populate avec parcimonie

Exposez vos données via l'API publique.

Générer une clé API