¿DynamoDB admite claves foráneas?
No. DynamoDB no tiene claves foráneas, restricciones de integridad referencial ni eliminaciones en cascada —como base de datos NoSQL, nunca impone relaciones entre Items o tablas—. En su lugar, modelas las relaciones tú mismo: desnormaliza los datos relacionados en un único Item, o coloca los Items relacionados bajo una clave de partición compartida con el diseño de tabla única.
Por qué no hay claves foráneas
Una clave foránea existe para dar soporte a los joins e imponer integridad entre tablas normalizadas. DynamoDB omite deliberadamente el operador JOIN (AWS recomienda desnormalizar en su lugar), así que una restricción de clave foránea vigilaría una relación que el modelo de consulta nunca explota. Nada te impide almacenar la clave de otro Item como atributo —DynamoDB simplemente no la validará ni la propagará en cascada—. Si la integridad referencial impuesta es innegociable, DynamoDB vs PostgreSQL traza la línea entre los dos modelos.
Cómo se modelan las relaciones en su lugar
- Incrustar — los datos hijos, pequeños y acotados, viven dentro del Item padre como una lista o un mapa.
- Colocar juntos — el padre y los hijos comparten una clave de partición con claves de ordenación distintas, así que un solo
Querydevuelve toda la relación; este es el corazón del diseño de tabla única. - Duplicar — copia los campos que cada patrón de acceso necesita en los Items que los necesitan, aceptando el mantenimiento en tiempo de escritura a cambio de lecturas de una sola solicitud.
Las guías de relaciones uno a muchos y muchos a muchos cubren cada forma en profundidad.
Imponer la integridad cuando importa
Para los casos en que te habrías apoyado en una restricción, DynamoDB te da bloques de construcción: las expresiones de condición protegen una escritura según el estado del Item que se escribe, y el ConditionCheck de una transacción puede verificar que existe un Item distinto (por ejemplo, el padre) dentro de la misma operación de todo o nada. Las eliminaciones en cascada se convierten en lógica de aplicación explícita o en una limpieza impulsada por Streams.
Profundiza más
Empieza por el diseño de tabla única, construye las condiciones de protección en el expression builder, y descarga DynoTable para ver tus colecciones de Items —padres e hijos, uno al lado del otro— en una sola vista.
Referencias
- What is Amazon DynamoDB? — Amazon DynamoDB Developer Guide
- Amazon DynamoDB Transactions: How it works — Amazon DynamoDB Developer Guide
- Best practices for NoSQL design — Amazon DynamoDB Developer Guide
Verificado por última vez el 2026-07-13 contra la documentación oficial de AWS enlazada arriba.