DynamoDB prend-il en charge les clés étrangères ?

Non. DynamoDB n'a pas de clés étrangères, de contraintes d'intégrité référentielle ni de suppressions en cascade — en tant que base de données NoSQL, il n'impose jamais de relations entre éléments ou tables. Tu modélises plutôt les relations toi-même : dénormalise les données liées en un seul élément, ou regroupe les éléments liés sous une clé de partition partagée avec la conception mono-table.

Pourquoi il n'y a pas de clés étrangères

Une clé étrangère existe pour prendre en charge les jointures et imposer l'intégrité sur des tables normalisées. DynamoDB omet délibérément l'opérateur JOIN (AWS recommande plutôt de dénormaliser) : une contrainte de clé étrangère surveillerait donc une relation que le modèle de requête n'exploite jamais. Rien ne t'empêche de stocker la clé d'un autre élément comme attribut — DynamoDB ne la validera ni ne la propagera simplement pas. Si une intégrité référentielle imposée est non négociable, DynamoDB vs PostgreSQL trace la frontière entre les deux modèles.

Comment les relations se modélisent à la place

  • Intégrer — des données enfant petites et bornées vivent à l'intérieur de l'élément parent sous forme de liste ou de map.
  • Regrouper — le parent et les enfants partagent une clé de partition avec des clés de tri distinctes, si bien qu'un seul Query renvoie toute la relation ; c'est le cœur de la conception mono-table.
  • Dupliquer — copie les champs dont chaque schéma d'accès a besoin sur les éléments qui en ont besoin, en acceptant une maintenance à l'écriture pour des lectures en une seule requête.

Les guides un-à-plusieurs et plusieurs-à-plusieurs couvrent chaque forme en profondeur.

Imposer l'intégrité quand cela compte

Pour les cas où tu te serais appuyé sur une contrainte, DynamoDB te donne des briques de base : les expressions de condition protègent une écriture selon l'état de l'élément écrit, et le ConditionCheck d'une transaction peut vérifier qu'un autre élément (par exemple le parent) existe dans la même opération tout-ou-rien. Les suppressions en cascade deviennent une logique applicative explicite ou un nettoyage piloté par Streams.

Pour aller plus loin

Commence par la conception mono-table, construis les conditions de protection dans le générateur d'expressions, et télécharge DynoTable pour voir tes collections d'éléments — parents et enfants côte à côte — en une seule vue.

Références

Dernière vérification le 2026-07-13 par rapport à la documentation officielle AWS liée ci-dessus.

Travaille avec DynamoDB sans la Console

DynoTable est un client de bureau rapide pour DynamoDB — parcours les tables, exécute des requêtes de style SQL et édite les items en local.